码迷,mamicode.com
首页 > 其他好文 > 详细

5,mat 分析

时间:2020-11-25 12:41:31      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:间隔   其他   需要   原因   tail   com   java   报告   对比   

1,将堆信息导入到mat中分析,查看index.html

2,加载后首页如下图,在首页上比较有用的是Histogram和Leak Suspects。

Leak Suspects Report(内存泄露报告)

技术图片

3, 点击Details进入详情页面。在详情页面Shortest Paths To the Accumulation Point表示GC root到内存消耗聚集点的最短路径,如果某个内存消耗聚集点有路径到达GC root,则该内存消耗聚集点不会被当做垃圾被回收。

技术图片

4, 在All Accumulated Objects by Class列举了该对象所存储的所有内容。

技术图片

5, 为了找到内存泄露,我获取了两个堆转储文件,两个文件获取时间间隔是一天(因为内存只是小幅度增长,短时间很难发现问题)。对比两个文件的对象,通过对比后的结果可以很方便定位内存泄露。

6, Histogram

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

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

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

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

Histogram

技术图片

Class Name : 类名称,java类名

Objects : 类的对象的数量,这个对象被创建了多少个

Shallow Heap :一个对象内存的消耗大小,不包含对其他对象的引用

Retained Heap :是shallow Heap的总和,也就是该对象被GC之后所能回收到内存的

注:

MAT提供了一个很贴心的功能,将报告的内容压缩打包到一个zip文件,并放在原始堆转储文件的目录下,一般命名为“xxx_Leak_Suspects.zip”,xxx是dump文件的名字,
如果需要和同事一起分析这个内存问题的话,只需要把这个小小的zip包发给他就可以了,不需要把整个堆文件发给他。
并且整个报告是一个HTML格式的文件,用浏览器就可以轻松打开

 

5,mat 分析

标签:间隔   其他   需要   原因   tail   com   java   报告   对比   

原文地址:https://www.cnblogs.com/k8s-pod/p/13976190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!