之前用elipse的时候,mat分析dump文件很方便,换了Mac 也换了idea之后,想使用mat,发现还是有点坑。
一下载
注意选择国内的下载镜像文件,会很快。
二 安装
直接unzip解压缩。
再mat.app/Contents/Eclipse ,修改初始化脚本文件MemoryAnalyzer.ini
这是默认的。
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.700.v20180518-1200
-vmargs
-Xmx1024m
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XstartOnFirstThread
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin
-data
/Users/xx/logpath
这里data路径设为你存放dunp文件的path即可。
三 启动
进入MacOS,执行
./MemoryAnalyzer
不用其他参数。
就会出现熟悉的界面。先选择dump文件,加载一会。
关于里面常见的shallow heap :这个就是对象本身的大小,retained heap是指对象自己本身的shallow heap的大小加上对象所引用的对象的大小.后面这个更接近GC的实际回收释放的情况。
重点关注 Histogram & Dominator Tree .
Histogram 按类列出内存中的对象,对象的个数以及大小。
Dominator Tree 支配树,分析对象的引用关系。
Leak Suspects通过MA自动分析泄漏的原因。可以进去看detail。