九、jdk工具之jhat命令(Java Heap Analyse Tool 虚拟机堆转储快照分析工具)、jhat之一:对dump的结果在浏览器上展示
目录
一、jdk工具之jps(JVM Process Status Tools)命令使用
二、jdk命令之javah命令(C Header and Stub File Generator)
三、jdk工具之jstack(Java Stack Trace)
四、jdk工具之jstat命令(Java Virtual Machine Statistics Monitoring Tool)
四、jdk工具之jstat命令2(Java Virtual Machine Statistics Monitoring Tool)详解
五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析
六、jdk工具之jinfo命令(Java Configuration Info)
七、jdk工具之jconsole命令(Java Monitoring and Management Console)
八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM
九、jdk工具之jhat命令(Java Heap Analyse Tool)
十、jdk工具之Jdb命令(The Java Debugger)
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
十三、jdk命令之Java内存之本地内存分析神器:NMT 和 pmap
Java Virtual Machine Heap Analysis Tool 虚拟机堆转储快照分析工具,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果,可以查找诸如内存方面的问题。
不过jhat和MAT比较起来,就没有MAT那么直观了,MAT是以图形界面的方式展现结果
一、hat命令 -- Java Head Analyse Tool介绍
用途:是用来分析Java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。
jhat -help
参数
-refs false|true
-port port-number
-baseline exclude-file
-debug int
-version
二、jhat中重点内容关注
查看jhat展示的网页信息中,一般查看堆异常情况主要看这个两个部分: Show instance counts for all classes (excluding platform),平台外的所有对象信息。Show heap histogram 以树状图形式展示堆情况。
这两部分内容在首页的http://ip:7000页面的最下面中的Other Queries里的两个链接中进入。
三、示例
第一步:导出堆
[appdeploy@cnsz22vl2175 appTest]$ jmap -dump:live,file=b.bin 81301 Dumping heap to /home/appdeploy/appTest/b.bin ... Heap dump file created [appdeploy@cnsz22vl2175 appTest]$
第二步:分析堆文件
[appdeploy@cnsz22vl2175 appTest]$ jhat test.bin
第三步:查看html
平台外的所有对象信息
有时你dump出来的堆很大,在启动时会报堆空间不足的错误,可以使用如下参数:
jhat -J-Xmx512m <heap dump file>
对于jhat启动后显示的html页面中功能:
(1)显示出堆中所包含的所有的类
(2)从根集能引用到的对象
(3)显示平台包括的所有类的实例数量
(4)显示平台外的所有对象信息
(5)堆实例的分布表(堆直方图)
(6)执行对象查询语句
更多关于对象查询语言的信息,见这篇文章:
http://blog.csdn.NET/gtuu0123/archive/2010/11/27/6039592.aspx