美文网首页
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