码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下使用 Memory Analyzer

时间:2016-07-09 19:32:29      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:

 一. 安装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的分析结果 

技术分享

 

Linux下使用 Memory Analyzer

标签:

原文地址:http://www.cnblogs.com/zyx1314/p/5656377.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!