美文网首页
memory analyzer tool

memory analyzer tool

作者: star_he | 来源:发表于2022-11-28 10:44 被阅读0次

注意:JVM 生成 Heap Dump 的时候,虚拟机是暂停一切服务的。如果是线上系统执行 Heap Dump 时需要注意
1.jmap -dump:format=b,file=D:\test\heap.hprof 6956
2.通过配置VM参数生成。选项"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/temp/",所代表的含义就是当程序出现OutofMemory时,将会在相应的目录下生成一份dump文件。对比:考虑到生产环境中几乎不可能在线对其进行分析,大都是采用离线分析,因此使用jmap+MAT工具是最常见的组合。

MAT查找内存泄漏

对于MAT来说,其常规的查找内存泄漏的方式可以细分为如下三步:

1、找到当前 Activity,在 Histogram 中选择其 List Objects 中的 with incoming reference

2、选择当前的一个 Path to GC Roots/Merge to GC Roots 的 exclude All 弱软虚引用。

3、找到的泄漏对象在左下角下会有一个小圆圈。

MAT的关键使用细节

要全面掌握MAT的用法,必须要先了解 隐藏在 MAT 使用中的四大细节,如下所示:

1、善于使用 Regex 查找对应泄漏类。
2、使用 group by package 查找对应包下的具体类。
3、明白 with outgoing references 和 with incoming references 的区别。
with outgoing references:它引用了哪些对象。
with incoming references:哪些对象引用了它。
4、了解 Shallow Heap 和 Retained Heap 的区别。
Shallow Heap:表示对象自身占用的内存。
Retained Heap:对象自身占用的内存 + 对象引用的对象所占用的内存。

相关文章

网友评论

      本文标题:memory analyzer tool

      本文链接:https://www.haomeiwen.com/subject/prulfdtx.html