首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

【转】03MAT Memory Analyzer Tool 插件装配(图解)

2013-10-14 
【转】03MAT Memory Analyzer Tool 插件安装(图解)转载自http://blog.csdn.net/yanghongchang_/article/deta

【转】03MAT Memory Analyzer Tool 插件安装(图解)

转载自http://blog.csdn.net/yanghongchang_/article/details/7711911

?

@author YHC

?

前段时间做了一个项目,Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

?

出现这个错误,所以需要查找原因,所以就用到这个工具,安装比较麻烦,贴出来和大家共享一下:

?

第一步:下载Eclipse MAT

下载地址:http://www.eclipse.org/mat/downloads.php

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

?

第二步:下载之后将压缩包解压,放置到Myeclipse 的\MyEclipse 9\dropins目录下

?

解压后会看见这些文件: 纠正下面一个错别字不是"写"是 "下"

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

?

第三步:按照下图,A,B,C的顺序进行对应的文件的创建

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

?

?

第四部:重启Myeclipse,打开Window->Perferences,你会看见这个项目:

?

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

?

简单的说一下使用(控制台的)如果是tomcat或者是别的服务器需要你去查如何配置JVM参数:

?

以下是一个会导致java.lang.OutOfMemoryError: Java heap space的程序代码:(very easy)

?

    package org.lx.test;            import java.util.Date;      import java.util.HashMap;      import java.util.Map;            public class OutOfMemoryTest {          public static void main(String[] args) {              Map<Integer,Date> map=new HashMap<Integer, Date>();              for (int i = 0; i < 600000000; i++) {                  map.put(i, new Date());              }          }                          }  

?

    package org.lx.test;            import java.util.Date;      import java.util.HashMap;      import java.util.Map;            public class OutOfMemoryTest {          public static void main(String[] args) {              Map<Integer,Date> map=new HashMap<Integer, Date>();              for (int i = 0; i < 600000000; i++) {                  map.put(i, new Date());              }          }                          }  

?

首先在运行之前有一些参数需要设置:

?

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

然后就到了参数设置的页面,按照A,B的顺序设置参数:(-XX:+HeapDumpOnOutOfMemoryError)避免写错误可以copy

?

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

运行错误的程序代码会看见以下结果:

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

那么这时候就生成了一个文件java_pid3708.hprof,这个文件 在你的项目的根目录下(myeclipse10)

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

那么接下来我们就打开这个文件进行分析如何打开见下图:(选中刚刚在项目根目录下生成的文件java_pid3708.hprof打开)

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

打开之后你会看见下图就OK了:

【转】03MAT Memory Analyzer Tool 插件装配(图解)

?

至于这其中问题如何查找请参考以下连接:

?

以下文章已经说的非常详细了:

?

1.使用 Eclipse Memory Analyzer 进行堆转储文件分析

?

2.使用mat进行dump文件分析

如有问题,请指正!谢谢!

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

热点排行