打开eclipse >> Help >> Install New Software >> 点击Work With右边的Add,输入java
[Name] MAT [Location] http://archive.eclipse.org/mat/1.2/update-site/
点击OK >> 点击Install 窗口下的Select All(选择所有), 而后一直点 下一步 直到结束便可。eclipse
建立java项目(只需一个类),代码(类名OOMObject)ide
1 import java.util.ArrayList; 2 import java.util.List; 3 4 /** 5 * Created by foreverenjoy on 16-7-9. 6 */ 7 public class HeapOOM { 8 static class OOMObject { 9 10 } 11 12 public static void main(String[] args) { 13 List<OOMObject> list = new ArrayList<>(); 14 15 while (true) { 16 list.add(new OOMObject()); 17 } 18 } 19 }
在Debug Cofigurations中设置VM参数:spa
-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryErrordebug
经过参数-XX:+HeapDumpOnOutOfMemoryError能够让虚拟机在出现内存溢出异常时Dump出当前的内存堆转存快照以便过后分析。code
点击debug运行项目,会出现blog
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid17179.hprof ...
Heap dump file created [27535550 bytes in 0.099 secs]

java_pid17179.hprof(虚拟机Dump出的内存堆转存快照)文件能够用Memory Analyzer Tool进行分析。
点击File >> Open File >> 选中本Java项目下的java_pid17179.hprof(java_*.hprof) >> 选中Leak Suspecs Report >> Finish
如下就是Memory Analyzer的分析结果 ip