eclipse memory analyzer是一个Java堆内存析工具,又俗称为eclipse mat插件。该工具不仅可以用它来分析内存问题,也可以用来监控整个Java应用程序的状态和行为。通过读取应用程序运行时由Java运行时环境生成的转储文件快照,能够分析那些调试代码可能无法发现的复杂问题。使用eclipse mat插件可以快速分析dump文件,可直观的看到各个对象占用内存的大小,以及实例的数量、对象之间的引用关系,主要用于查询堆对象、比较对象、寻找责任对象、运行泄漏可疑报告等,欢迎免费下载体验。
1、打开Eclipse - >help - > Eclipse Marketplace
2、点击install,等待下面的进度条加载完毕后,勾选全部,点击Next
3、同意协议后,点击Finish就开始安装MAT了
1、收购堆转储。
2、运行泄漏可疑报告。
3、列出占用最大的对象。
4、寻找责任对象。
5、查询堆对象(OQL)。
6、分析装载机。
1、分析线程。
2、分析Java集合使用情况。
3、分析Finalizer。
4、比较对象。
5、导出数据。
6、内存分析仪配置。
1、使用 Heap查看当前堆大小为 23、00M
2、添加一个页后堆大小变为 23、40M
3、将添加的一个页删除,堆大小为 23、40M
4、多次操作,结果仍相似,说明添加/删除页存在内存泄漏(也应注意排除其它因素的影响)
5、Dump 出操作前后的 hprof 文件(,用 ma打开并得到 histgram结果
6、使用 HomePage字段过滤 histgram结果,并列出该类的对象实例列表,看到两个表中的对象集合大小不同,操作后比操作前多出个 HomePage,说明确实存在泄漏
7、将两个列表进行对比,找出多出的一个对象,用查找 GC Rt的方法找出是谁串起了这条引用线路,定位结束
v1.15.0版本
修复现有错误
泄漏搜寻的改进
网友评论