转自 http://www.cnblogs.com/nb44c/p/5218880.html
1.先安装MAT插件
- Memory Analyzer 插件下载地址:http://www.eclipse.org/mat/downloads.php
- 点击进行下载
3.将下载的文件解压到MyEclipse的 dropins 文件夹下
4.创建和文件夹同名的.link文件,文件中的内容就写上对应的地址(地址使用\\ 或者 /)
5.重启MyEclipse,即可在window---->preferances中看到Memory Analyzer选项。
2.使用MAT工具进行分析实例
1.创建测试Java代码
/** *
-verbose:gc -Xms20M -Xmx20M
-XX:+HeapDumpOnOutOfMemoryError
* @author y * */ public class Test { static class OOMObject{ } public static void main(String[] args) { List<OOMObject> list = new ArrayList<OOMObject>(); while(true){ list.add(new OOMObject()); } } }
2.设置运行参数
参数解释:
1,堆是存储对象实例的,即自己写的类都是在堆中进行内存分配的;设置堆的大小:-Xmx20M(最大值) ,-Xms20M(最小值)。
2,栈是存储局部变量,操作栈,动态链接,方法出口(都在栈桢中) 的地方,调用方法时,会创建栈桢;设置栈的大小:-Xss128K。
3,方法区是存放Class的相关信息,如类名,访问修饰符,常量池,字段描述,方法描述等。此外运行时常量池是属于方法区的,即存放常量,静态常量等;设置方法区大小,-XX:PermSize=10M和-XX:MaxPermSize=10M。
4,本地直接内存;设置本地直接内存大小:-XX:MaxDirectMemorySize(默认与-Xmx的值一样)。3.运行程序,将会出现如下信息
分析:参照一下博客
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/index.html?ca=drs-
http://essen.iteye.com/blog/1825314
http://tivan.iteye.com/blog/1487855
时间: 2024-10-11 00:22:48