Blue Flower

eclipse memory analyzer是一个Java堆内存析工具,又俗称为eclipse mat插件。该工具不仅可以用它来分析内存问题,也可以用来监控整个Java应用程序的状态和行为。通过读取应用程序运行时由Java运行时环境生成的转储文件快照,能够分析那些调试代码可能无法发现的复杂问题。使用eclipse mat插件可以快速分析dump文件,可直观的看到各个对象占用内存的大小,以及实例的数量、对象之间的引用关系,主要用于查询堆对象、比较对象、寻找责任对象、运行泄漏可疑报告等,欢迎免费下载体验。
EclipseMAT

软件功能

1、收购堆转储。
2、运行泄漏可疑报告。
3、列出占用最大的对象。
4、寻找责任对象。
5、查询堆对象(OQL)。
6、分析装载机。
7、分析线程。
8、分析Java集合使用情况。
9、分析Finalizer。
10、比较对象。
11、导出数据。
12、内存分析仪配置。

eclipse mat插件安装方法

1、将从本页下载的EclipseMAT压缩包解压至Eclipse根目录dropins文件夹下。
2、新建一个mat.link文件,将解压文件的全部路径输入进去。
3、重启Eclipse,打开Window-Perferences,出现了“Memory Analysis”表示已经安装成功。
202209140416301234280001

eclipse mat使用简介

一、使用MAT查内存溢出
1、生成dump文件,可以直接用 jmap -dump:format=b,file=xxx.bin ${pid}的方式
2、也可以直接用MAT生成,File-》Acquire Heap Dump-》选择要dump的java进程-》finish就可以了
202209140416304119400002
3、生成完dump后,可以用MAT打开 dump(如果是MAT dump完后会自动进行解析),File-》Open Heap Dump 对dump文件进行解析,最终生成一个Overview视图,这个图是一个概要图,显示了一些统计信息,包括整个size大小,class数量,以及对象 的数量,同时还将生成一个大对象的top图,并线显示大对象占用内存的百分比。
202209140416307544100003
二、找出溢出源
1、Histogram视图(截图里柱子那个,边上的是Dominator Tree ):列出每個class产生了多少個实例,以及占有多大内存,所占百分比。
202209140416309860970004
2、可以分不同的维度来查看类的Histogram视图,Group by class、Group by superclass、Group by class  loader、Group by package。只要有溢出,时间久了,溢出类的实例数量或者其占有的内存会越来越多,排名也就越来越前,通过多次对比不同时间点下的Histogram图对比就能很容易把溢出类找出来。
202209140416313343610005
3、Dominator Tree(支配树):列出每个对象(Object instance)与其引用关系的树状结构,还包含了占有多大内存,所占百分比
-可以很容易的找出占用内存最多的几个对象,根据Percentage(百分比)来排序。
-可以分不同维度来查看对象的Dominator Tree视图,Group by class、Group by class  loader、Group by package
-和Histogram类似,时间久了,通过多次对比也可以把溢出对象找出来,Dominator Tree和Histogram的区别是站的角度不一样,Histogram是站在类的角度上去看,Dominator Tree是站的对象实例的角度上看,Dominator Tree可以更方便的看出其引用关系。
202209140416316478440006

更新日志

eclipse memory analyzer1.6更新内容:
1、内存分析器分享了一组查询,它从代表集合的堆对象中提取信息。提取对于每个集合类型是特定的,因为它取决于内部实现。内存分析器中最常见的集合类型有内置的提取器。
2、使用新的扩展点collectionExtractorProvider,可以插入内存分析器中内置的提取程序无法识别的集合的收集提取器。>

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载