之前用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。
 
