unreachable Objects Histogram:可被回收的对象,但是现在仍然在内存当中
Shallow Heap指这个对象它自己占了多少内存,Retained Heap指在这个引用链之上,这些对象总共占了多少内存
with outgoing references:这个类引用到了哪些类
with incoming references:这个类被哪些类所引用
在查找内存泄露的过程中,应该使用with incoming references,查看该类被哪些类所引用了,导致该类不能被回收OQL
select * from com.hawk.game.player.Player p where toString(p.sessionIp) ="114.91.117.46" select * from com.hawk.game.player.Player
如果机器内存不够用,我们只能考虑把解析放到服务器上,那么,linux 上如何使用MAT呢?
先调整MemoryAnalyzer.ini 的大小,
执行命令
./ParseHeapDump.sh dump.log org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components。
dump.log就是jvm的dump文件,在mat目录下会生成3份.zip结尾的报告和一些m.相关的文件,将生成的m.hprof相关的文件都下载到windows本地磁盘