【java】为什么我使用jmap结合jhat查出来的内存使用情况低于实际?

这是我用的两条命令
jmap -dump:file=/usr/d.txt,format=b 29636
jhat -J-Xmx7000m /usr/d.txt

java程序运行的时候我用电脑观察内存总占用大概是3G左右
但是我用jmap和jhat查询过后,打开localhost:7000 页面,查看堆统计信息,
发现这里显示所有示例对象的总占用不到2G,为什么?

2个回答

内存包含堆和栈两部分;
你这边jmap查看的是堆内存 还有栈内存
建议使用jdk自带图形工具jvisualvm查看

jhat是一个Java堆复制浏览器。这个工具分析Java堆复制文件(例如,由上面的"jmap -dump"所产生的)。Jhat启动一个允许堆中的对象在web浏览器中进行分析的web服务器。这个工具并不是想用于应用系统中而是用于"离线"分析。"jhat工具是平台独立的",其意思是,它可以被用来观察在任何平台上所产生的堆复制。例如,我们有可能在Linux系统上使用jhat来观察一个 在Solaris OS上所产生的堆复制。
把本机的java内存映像导出到heap.dmp中,其中PID为java进程的ID号。 jmap -dump:live,format=b,file=heap.dmp PID
导出后的映像文件可以用jhat来进行分析,-J是向java虚拟机传一个参数,如-mx768m是指定虚拟机可用最大的内存为768M。如果映像文件很大,你要指定一个很大的值,否则在分析过程中就会有OutOfMemeryError的错误,试试看

guitarrain
笑纹 答非所问
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JVM内存信息查看 jmap jhat
jmap jhat (JDK8) 将JVM堆内容信息输入到文件中 jmap -dump:format=b,file=file1 2819 //将JVM堆信息保存到当前用户目录下的file1文件中 jhat file1 //使用该命令,会开启一个http服务,通过7000端口访问可以查看详细信息,访问http://ip:7000 jmap -head PID //查看...
jdk分析工具:jmap和jhat
jmap 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -d...
Jmap命令查看内存使用情况
jmap查看内存使用情况 jmap -histo[:live] pid查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象,如下: jmap -histo:live 21711 | more 问题:在linux下,命令和windows下一样,用root用户输入以下命令:  jmap -dump:format=b,file=/filepath/hea
jmap、 jhat 分析堆内存溢出
查看该进程下堆内存的使用情况 jmap -heap 1963(进程号) 查看存活对象的内存使用情况 jmap -histo:live 1963 jmap -histo:live 1963 >1.txt 将信息输出到指定文件中可以找到造成内存溢出的具体方法。3.还可以使用jhat分析内存溢出的原因 使用dump内存信息到heap.bin文件 jmap -dump:live
jmap使用以及 linux下查看进程的内存使用情况
1、top命令 top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s 如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage) 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将V...
内存运行频率低于实际频率
[size=18px]rn我的内存是:rn[img=https://img-bbs.csdn.net/upload/201312/06/1386340171_73007.png][/img]rnrn能看到内存频率是1600MHz。rnrn通过鲁大师也能检测出来是1600MHzrnrn[img=https://img-bbs.csdn.net/upload/201312/06/1386340247_362471.png][/img]rnrn[color=#FF0000]但是在“任务管理器”中显示却为1330MHz,请问这是什么原因呢?[/color]rnrn[img=https://img-bbs.csdn.net/upload/201312/06/1386340350_517733.png][/img]rnrnrnrnrnrn[color=#FF0000]请问大神能看出来是什么原因吗?需要什么截图我再补充。[/color]rnrnrnrnrnrnrnrnrnrnrn[/size]
JVM自带性能分析工具介绍——jmap和jhat
前言 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测,这里我们就简要介绍下这几个命令的作用和使用方法。 命令 作用
JVM分析工具链(二) - jmap和jhat
3 jmap, Java Memory Map, 用来查看堆内存使用状况。 jmap -heap pid 查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况。 jmap -histo:live 21711 | less 查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象。 还可以用jmap把进程内存使用情况dump到文件
jmap、jhat查看jvm堆内存信息
打印heap信息 [code="java"] D:\>jmap -histo 4636 > d:log.log [/code] 生成heap信息并生成二进制文件 [code="java"] D:\>jmap -dump:live,format=b,file=d:\log.log 4636 Dumping heap to D:\log.log ... Heap dump file...
java 打印内存jmap命令
jmap   -histo:live 2876   >a2876.log
JVM监控工具:jps、jstat、jinfo、jmap、jhat、jstack使用介绍
一、jps(JVM Process Status Tools) jps是参照Unix系统的取名规则命名的,而他的功能和ps的功能类似,可以列举正在运行的饿虚拟机进程并显示虚拟机执行的主类以及这些进程的唯一ID(LVMID,对应本机来说和PID相同),他的用法如下: jps [option] [hostid] 其中hostid默认为本机,而option选项包含以下选项
java 监视内存的使用情况
java 监视内存的使用情况 java 监视内存的使用情况 java 监视内存的使用情况
Java 获取内存使用情况
公司要求将各个设备上传的数据分析并且导出到统一的一个表中,目前在准备,数据比较多,所以需要考虑到内存的使用情况,经网上查询使用,出现了以下问题。 第一种方法Runtime LogUtils.debug("TotalMemory", Runtime.getRuntime().totalMemory()/(1024*1024)+"M"); LogUtils.debug("FreeM...
jmap 查看内存使用直方图
jps   -- 查看进程号 jmap -histo pid  查看堆内存中的对象数目、大小统计直方图, 如果带上live则表示先进行一次fullgc 再统计内存使用情况,如下: jmap -histo:live pid | more   ...
java 内存监控工具 jstat jmap
          Java语言不允许开发者管理内存,内存是靠jvm 统一管理,的内存对开发者来说是透明的。但有时需要了解内存内部活动,就需要通过一些工具实现。介绍两个SUN 的JDK中的工具 jmap jstat       一.jmap      1.  jmap -heap pid          查看java 堆(heap)使用情况           ...
jhat使用
Jhat用于对JAVA heap进行离线分析的工具,他可以对不同虚拟机中导出的heap信息文件进行分析,如Linux上导出的文件可以拿到WINDOWS上进行分析,可以查找诸如内存方面的问题。
简单介绍使用java查看内存使用情况
使用java查看内存使用情况public class test { public static <E> void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); final Runtime rt = Runtime.getRuntime();
Jmap 和MAT结合分析JAVA 内存问题
jmap 命令: dump heap jamp -dump:format=b pid然后使用MAT工具分析heap dump
内存使用情况
可以查看计算机内存的使用情况和利用情况!
JAVA进程内存(本机内存)的使用情况
什么是本机内存: 即进程内存。本机内存是可用于运行时进程的内存,它与 Java 应用程序使用的 java 堆内存不同。每种虚拟化资源(包括 Java 堆和 Java 线程)都必须   存储在本机内存中,虚拟机在运行时使用的数据也是如此。   里面存储哪些内容: Java 堆:使用的本机内存大小保持不变,而且由 -Xmx 值(最大堆大小)指定。 垃圾收集:对于维护 Java 堆的...
java监控系统链接和内存使用情况
java监控系统链接和内存使用情况
Java程序运行前后内存使用情况
Java程序运行前后内存使用情况
Java内存使用情况查看工具
Java通过jvm自己管理内存,同时Java提供了一些命令行工具,用于查看内存使用情况。 这里主要介绍一下jstat、jmap命令以及相关工具。
java获取内存及硬盘使用情况
以前,java没有明确的方法来确定一个分区的可用空间。我们使用执行命令:cat /proc/meminfo df -hl来查看内存、硬盘使用情况:root@ubuntu:~# cat /proc/meminfo MemTotal: 3936412 kB MemFree: 1581248 kB MemAvailable: 2814556 kB root@ub...
JMAP的使用
jmap –heap Attaching to process ID 369634, please wait… Debugger attached successfully. Server compiler detected. JVM version is 25.20-b23using thread-local object allocation. Parallel GC with 43
使用jmap dump 分析JVM内存状态
查看整个JVM内存状态 jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致Java 进程挂起
虚拟机的性能监控与故障处理——jps,jstat,jinfo,jmap,jhat,jstack
Java虚拟机实现了内存自动分配,垃圾回收机制,但是这一过程,究竟什么时候执行,执行到什么地步,却需要jdk提供的一些工具来监控。比如jps,jstat,jinfo,jmap,jhat,jstack。1,jps首先看看jps,jps——java process status tool,也就是java进程状态工具,奥~,原来是看现在运行的java进程的状态的,jps也有点像linux的ps命令,那么...
五、JDK命令行工具jps、jstat、jmap、jstack、jhat、jinfo
一、jps,查看虚拟机进程的命令 参数说明 -q:只输出进程 ID -m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数   二、jstat,查看虚拟机统计信息监视命令 jstat -gcutil 进程id 多少毫秒查询一次  共查询多少次 ,查看垃圾收集的状况,例如下图,进程号10066 ,1000毫秒查询一次...
Linux jmap查看Java程序堆内存的使用情况
敲jmap命令后,显示下面的命令 [root@~]# jmap Usage:     jmap [option]         (to connect to running process)     jmap [option]         (to connect to a core file)     jmap [option] [server_id@]        
jmap的使用
统计实例最多的类 前十位有哪些? A:jmap -histo pid | sort -n -r -k 2 | head -10 统计合计容量前十的类有哪些? A:jmap -histo pid | sort -n -r -k 3 | head -10
JVM监控命令总结(jps、jstat、jmap、jhat、jstack)
最近遇到了jvm调优的事情,用到了一些工具(jvisualvm、jconsole),墙裂推荐JProfiler(非免费)。也用到了一些jvm监控命令,遂想总结一下,以备后用。期间参考了不少资料,比如: https://blog.csdn.net/wisgood/article/details/25343845 一、jps (Java Virtual Machine Process Statu...
JVM的常用性能监控工具jps、jstat、jinfo、jmap、jhat、jstack
JPS jstat jinfo jmap java内存映象工具 jhat jstack(java堆栈跟踪工具) 参考链接 jvm系列五:监测命令(jvisualvm jps jstat jmap jhat jstack jinfo)及dump堆内存快照分析 给虚拟机定位问题之前需要有一定的虚拟机基础,比如说内存分配与回收技术。 给一个系统定位问题的时候,知识,经...
JVM性能监控工具jstat、jps、jstack、jmap、jhat
jps是可以查看当前Java进程。 命令格式:jps [options ] [ hostid ] [options]选项 : -q:仅输出java进程号 -m:输出传递给Java进程(主函数)的参数 -l:输出主函数的完整路径 -v:输出jvm启动参数 jinfo查看正在运行的Java进程的扩展参数。 命令格式:jinfo &lt;option&gt; &lt;pid&gt; 例如:
【Java命令二】jhat
jhat用于分析使用jmap dump的文件,,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。 jhat默认开启监听端口7000的HTTP服务,jhat是Java Heap Analysis Tool的缩写 1. 用法: [hadoop@hadoop bin]$ jhat -help Usage: jhat [-stack &amp;lt;bool...
使用JDK自带的jmap和jhat监控处于运行状态的Java进程
对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等。 本文基于JDK1.8而写成。 我下面写了一个最简单的Java类,包含了一个无限循环,每隔5秒增加一个计数器的值。 package jmap; class Tool{ private i...
内存显示器,显示内存使用情况
该系统时时获取内存的使用情功能要求:播放、暂停、停止、播放列表读写,音量调节,并添加一些装饰。 涉及到音乐播放,列表控件,文本读写,右键菜单 老师提示引入 windows media player的控件,求高人指导!
Linux实际内存使用计算
Linux实际内存使用情况计算 通常我们看到Linux用top命令查看系统运行状况,普遍看到Used Memory占到了将近总内存的90%,然后很多人以为系统内存已经不足。其实,这只是Linux的为了提高文件读取的性能的内存使用机制罢了。不同于Windows,windows程序执行完后,会马上释放掉内存,把Memory降下来。而对于Linux,如果你的服务器内存还有足够多的空间的话,...
内存扩大到实际内存
加入内的机子支持4G 但你的内存条有8G就可以用这个工具
C++得到内存使用情况
C++得到内存使用情况 MEMORYSTATUS结构, 结构的定义如下: MEMORYSTATUS STRUCT dwLength DWORD ;本结构的长度 dwMemoryLoad DWORD ;已用内存的百分比 dwTotalPhys DWORD ;物理内存总量 dwAvailPhys DWORD ;可用物理内存 dwTotalPageFile DWORD ;交换文件总的大小 dwAvailPageFile DWORD ;交换文件中空闲部分大小 dwTotalVirtual DWORD ;用户可用的地址空间 dwAvailVirtual DWORD ;当前空闲的地址空间 MEMORYSTATUS ENDS
查看内存使用情况
一个小游戏,怎么一定要我写下20个字呢。我晕,写就写,这就是一个练习而已。
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件