MAT 分析堆内存快照

2021-01-05

MAT 是基于 Eclipse 开发的 Java 堆内存快照分析工具。

 

下载地址:

https://www.eclipse.org/mat/downloads.php

如果你分析的堆内存快照文件比较大,需要修改配置文件 MemoryAnalyzer.ini,我本地 -Xmx4096m,即最大堆内存给的 4G。

 

这几个视图使用较多:

  • 打开文件默认显示概要

  • class 实例数列表

  • 支配树视图,根据包路径分组 + 深堆逆序,就能查到占用大量内存的对象

  • QQL,像查 SQL 一样查实例信息

  • 线程视图

  • Leak Suspects,内存泄漏猜测;也可以使用 Leak Identification - Find Leaks

 

几个核心概念:

  • 显示对象时,outgoing references 指对象的引出

  • 显示对象时,incoming references 指对象的引入

  • path to GC Roots,显示对象的 GC Root 对象

  • Shallow Heap(浅堆),对象本身的内存占用

  • Retained Heap(深堆),对象被垃圾回收后,能够释放的内存大小

  • Retained Set(保留集),上述被回收对象集合

 

 

 

 

 

 


 

ConstXiong 备案号:苏ICP备16009629号-3