Linux下使用 Memory Analyzer

一. 安装Memory Analyzer Tool

打开eclipse >> Help >> Install New Software >> 点击Work With右边的Add,输入

[Name]  MAT
[Location]  http://archive.eclipse.org/mat/1.2/update-site/  

点击OK >> 点击Install 窗口下的Select All(选择全部), 然后一直点  下一步  直到结束即可。

 

二.使用Memory Analyzer

创建java项目(只需一个类),代码(类名OOMObject)

 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参数:

-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

通过参数-XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转存快照以便事后分析。

点击debug运行项目,会出现

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的分析结果

posted @ 2016-07-09 18:25  ForeverEnjoy  阅读(3892)  评论(0编辑  收藏  举报