HeapAnalyzer分析工具

  由于jvisualvm或jmap生成的dump文件太大,常常需要用到dump文件分析工具对dump文件进行分析。HeapAnalyzer通过分析heapdump文件,以了解哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。启动后使用open file菜单,浏览打开我们需要进行内存堆栈分析的heapdump文件。

IBM HeapAnalyzer运行环境要求JDK 1.6或以上;如果JDK版本过低,报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: java/util/regex/PatternSyntaxException

运行时需要足够大的内存,Heapdump文件一般比较大,打开耗时较长,推荐在配置比较好的机器上进行堆栈分析,这样-Xmx设置大一点。

如果在解析heapdump文件时出现java.lang.OutOfMemoryError的报错:

请尝试最大堆大小(-Xmx)值给JVM更多的内存。由于该工具性能的要求,最大堆内存应不大于物理内存的大小。

启动方法:

运行ha396.jar文件,在可执行文件run.bat/run.sh中配置环境变量:

 java -jar -Xmx3000m ha396.jar

 执行后打开IBM HeapAnalyzer图形化界面,导入deapdump文件。

也可以通过命令行的方式直接打开heapdump文件:

 java -Xmx3000m -jar ha396.jar heapdump.20120503.170018.1510.0003.phd

 其中,Xmx3000m指定JVM分配的内存是3000m

 执行以上命令后,ha控制台出现如下结果。打开heapdump文件后的效果图,可以选择多种视图进行分析,Tree View,Objects List等等。

 

posted on 2016-05-09 10:10  TestWorld  阅读(3935)  评论(0编辑  收藏  举报