Linux下使用 Memory Analyzer

一. 安装Memory Analyzer Tool

打开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

 

二.使用Memory Analyzer

建立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 }
JAVA Code

在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

相关文章
相关标签/搜索