JAVA 内存分析 MAT 常用功能

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

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

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

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

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

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

Retained Heap -> 是shallow Heap的总和,也就是该对象被GC之后所能回收到内存的总和,内存分析通常以 retained heap 为主

List objects -> with incoming references:查看这个对象持有的外部对象引用

List objects -> with outcoming references:查看这个对象被哪些外部对象引用

Path To GC Roots -> exclude all phantim/weak/soft etc. references:查看这个对象的GC Root,不包含虚、弱引用、软引用,剩下的就是强引用。从GC上说,除了强引用外,其他的引用在JVM需要的情况下是都可以 被GC掉的,如果一个对象始终无法被GC,就是因为强引用的存在,从而导致在GC的过程中一直得不到回收,因此就内存溢出了。

Path To GC Roots -> exclude weak/soft references:查看这个对象的GC Root,不含弱引用和软引用所有的引用.

Merge Shortest path to GC root :找到从GC根节点到一个对象或一组对象的共同路径

你可能感兴趣的:(JAVA 内存分析 MAT 常用功能)