下载
Eclipse Memory Analyzer (MAT) 下载
直接解压运行
生成Dump文件
jmap -dump:live,format=b,file=[fileName] [javaPid]
注意运行命令时请使用运行java进程的user操作,或使用sudo -u [userName]
打开Dump文件
Overview
Histogram(直方图)
展示内存中所有类的对象个数以及所有对象的大小总和
Dominator Tree(支配树)
展示内存中所有对象的大小以及内存占比
Top Consumers
通过饼图的方式展示内存中所有对象的大小以及内存占比
Leak Suspects
MAT内存泄漏分析,可自动分析内存泄漏可疑点
Thread Overview
展示正在运行中所有的线程基本信息,以及线程栈
名词解释
Shallow Heap
就是对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)的总和;
Retained Heap
是该对象自己的Shallow Heap,加上从该对象能直接或间接访问到对象的Shallow Heap之和。Retained Heap是该对象被GC之后所能回收到内存的总和。