HeapAnalyzer内存溢出分析工具使用

由于dump文件太大,常常需要用到dump文件分析工具对dump文件进行分析。

HeapAnalyzer通过分析heapdump文件,以了解哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。

启动后使用open file菜单,浏览打开我们需要进行内存堆栈分析的heapdump文件。

ha (IBM HeapAnalyzer):

· 运行环境要求JDK 1.6或以上;

如果JDK版本过低,报错如下:

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

· 运行需要足够大的内存:

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

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

X

请尝试最大堆大小(-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等等。

?

文章来自:http://2978868146.iteye.com/blog/2232216
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3