HeapAnalyzer分析工具


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等等。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM