自学内容网 自学内容网

Java堆内存分析

(一)、线上查看堆内存统计

# 命令用于打印堆内存中每个类的实例数量及其占用的内存,并且只包括活动对象(即存活的对象)
jmap -histo:live <pid>

# 输出到文件方便查看
jmap -histo:live 12345 > aaa.txt

(二)、下载dump文件,使用MAT进行分析


jmap -dump:live,format=b,file=heapdump.hprof <pid>

MAT分析A类的引用链

1、定位特定实例
  • 安装MAT后,打开heapdump.hprof文件
  • 在 Histogram 中,右键点击 A 类,选择 List Objects -> with incoming references。
  • 这会列出所有 A 实例,并显示每个实例的内存地址。
2、分析特定实例的引用链
  • 选中一个 A 实例,右键选择 Merge Shortest Paths to GC Roots -> Exclude Weak References。
  • 这会显示从垃圾回收根(GC Root)到该类加载器实例的引用路径。
3、关注关键路径
  • 在引用链中,重点查看分析

原文地址:https://blog.csdn.net/loehuang/article/details/145055374

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!