内存泄漏检测分析工具mat(memory analyzer tool) 的使用

.下载、安装

地址:http://www.eclipse.org/mat/downloads.php  直接解压即可

初始界面

.获取对应进程的heapdump,使用jmap命令

        jmap -dump:live,format=b,file=test.hprof(保存的文件名字)  pid(应用对应的进程id)

        此时触发 jvm FGC

.点击Open a Heap Dump选择heap dump文件

.建议获取不同时段的heapdump 在mat中打开比较分析

打开两个heapdump,勾选Leak Suspects、选择Hsitogram界面

  • Histogram可以列出内存中的对象,对象的个数以及大小。

  • Dominator Tree可以列出那个线程,以及线程下面的那些对象占用的空间。

  • Top consumers通过图形列出最大的object。

  • Leak Suspects通过MA自动分析泄漏的原因。

2中选择 group by package 对比两边数据、排查问题

Leak Suspects(mat自动分析得出的可能出现问题的地方)

  深色部分为怀疑内存泄漏区域

点击details查看

1.Shortest Paths To the Accumulation Point  表示 GC root到内存消耗聚集点的最短路径

2.All Accumulated Objects by Class列举了该对象所存储的所有内容。

参考文章 

https://www.aliyun.com/jiaocheng/1838798.html?spm=5176.100033.2.19.25935c6fuCrYo0

https://www.aliyun.com/jiaocheng/839560.html?spm=5176.100033.2.14.25935c6ffWLuRK

猜你喜欢

转载自blog.csdn.net/qq_35732831/article/details/84982463