jvm---6.1、dump 文件分析工具 IBM HeapAnalyzer

IBM HeapAnalyzer 工具  

官网:

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

官网翻译如下;

HeapAnalyzer允许通过启发式搜索引擎查找可能的Java™堆泄漏区域,并分析Java应用程序中的Java堆转储。
Java堆区定义了对象,数组和类。当垃圾收集器分配堆中的存储区域时,对象继续处于活动状态,而其引用存在于JVM的活动状态中某处; 因此该对象是可到达的。当一个对象停止从活动状态被引用时,它变成垃圾并且可以被回收再利用。发生此回收时,垃圾收集器必须处理可能的终结器,并确保与该对象关联的任何内部JVM资源返回到此类资源的池中。Java堆转储是特定时间的Java堆的快照。


如何工作:
HeapAnalyzer通过解析Java堆转储,创建定向图,将其转换为定向树以及执行启发式搜索引擎来分析Java堆转储。


以下是功能的示例:


Java堆泄漏嫌疑人名单
推荐kCluster的大小
分配的对象/类/数组之间的间隙列表
Java对象/类/数组搜索引擎
按类型name的对象/类/数组列表
按对象名称列出对象/类/数组
通过地址列出对象/类/数组
按大小列出对象/类/数组
按大小排序的对象/类/数组列表
子对象/类/数组的列表
按频率列出的对象/类/数组
按大小列出可用堆空间
Java堆转储的树视图
加载/保存已处理的Java堆转储。
 
使用
下载 运行的jar(官网下面的链接)
ftp://public.dhe.ibm.com/software/websphere/appserv/support/tools/HeapAnalyzer/ha456.jar

运行:
# java -Xmx4g -jar ha456.jar
File->Open 打开一个dump 文件,分析结果自动展示了

Analysis->Analysis view  快速定位出OOM 的位置


注:对于大内存来说,堆文件可能都几十个G,堆文件可能都生成不了,也是分析不出来的。



猜你喜欢

转载自blog.csdn.net/convict_eva/article/details/80653408