概要
IBM HeapAnalyzer是用于发现可能的Java堆泄漏的图形工具。
脚步
- 下载:https : //public.dhe.ibm.com/software/websphere/appserv/support/tools/HeapAnalyzer/ha457.jar
- 打开终端或命令提示符,然后将目录更改为您下载JAR文件的目录。
- 确保Java在您的PATH上以运行该工具。
- 启动该工具(根据您的可用RAM增加-Xmx):
java -Xmx2g -jar ha * .jar
注:IBM HeapAnalyzer没有新开发,因此,一般而言,我们建议使用带有IBM DTFJ Extension的Eclipse Memory Analyzer Tool(MAT),它是开放源代码并具有活跃的开发,类似的功能集(查找大型控制者,可疑泄漏对象)等等),以及带有特定于产品的分析引擎的IBM Extensions for Memory Analyzer。
附加信息
HeapAnalyzer允许通过其启发式搜索引擎并分析Java应用程序中的Java堆转储来查找可能的Java™堆泄漏区域。
Java堆区域定义对象,数组和类。当垃圾回收器在堆中分配存储区域时,对象的活动将继续,而对它的引用则处于JVM处于活动状态的某个位置。因此该对象是可到达的。当停止从活动状态引用对象时,该对象将变为垃圾,可以回收以进行重用。发生此回收时,垃圾收集器必须处理可能的终结器,并且还必须确保与该对象关联的所有内部JVM资源都返回到此类资源池中。Java堆转储是特定时间的Java堆快照。
![主屏幕](https://i-blog.csdnimg.cn/blog_migrate/9ffb8459219fdf00519a0cf7b2a63c8e.png)
它是如何工作的?
HeapAnalyzer通过解析Java堆转储,创建方向图,将它们转换为方向树并执行启发式搜索引擎来分析Java堆转储。
以下是功能示例:
- Java堆泄漏嫌疑人列表
- 建议的kCluster大小
- 分配的对象/类/数组之间的差距列表
- Java对象/类/数组搜索引擎
- 按类型名称列出的对象/类/数组
- 按对象名称列出的对象/类/数组
- 按地址列出对象/类/数组
- 按大小列出的对象/类/数组
- 按孩子大小列出的对象/类/数组的列表
- 按子代数列出的对象/类/数组
- 按频率列出的对象/类/数组
- 可用堆空间的大小列表
- Java堆转储的树视图
- 加载/保存已处理的Java堆转储。
有关其他详细信息,请参阅该工具中的帮助文档。
HeapAnalyzer工具按原样提供,没有任何保修或支持;但是,我们会在时间允许的情况下尝试修复和增强该工具。该工具最初是由Jinwoo Hwang创建的。自从Hwang先生离开IBM以来,Kevin Grigorenko(kevin.grigorenko@us.ibm.com)在时间允许的情况下维护了该工具。
注:IBM HeapAnalyzer没有新开发,因此,一般而言,我们建议使用带有IBM DTFJ Extension的Eclipse Memory Analyzer Tool(MAT),它是开放源代码并具有活跃的开发,类似的功能集(查找大型控制者,可疑泄漏对象)等等),以及带有特定于产品的分析引擎的IBM Extensions for Memory Analyzer。