之前做android开发的使用遇到内存问题曾看到mat能分析内存使用状态,折腾过了一次。现在有空继续折腾一下。
第一步:下载Eclipse MAT
下载地址:http://www.eclipse.org/mat/downloads.php
![](https://img-my.csdn.net/uploads/201304/24/1366771928_4524.png)
可以看到最新版是1.2.1,鉴于myeclipse的安装选择压缩包离线升级
第二步:下载之后将压缩包解压,放置到Myeclipse 的MyEclipse\MyEclipse 10\dropins目录下
创建一个mat的文件夹,解压的文件都放那里
重启myeclipse,当启动完成后可以看到
第四部:打开Window->Perferences,你会看见这个项目:
第五步:
写个小程序测试一下
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class MatTest {
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());
}
}
}
先工程右键 Java Application
再工程右键 Run Configurations..
在运行配置窗口为argument添加-XX:+HeapDumpOnOutOfMemoryError如下图
配置完成点击“run”可以看到程序报错
刷新一下项目目录可以看到生成一个java_pid5012.hprof文件
双击打开
至于这其中问题如何查找请参考以下连接:
以下文章已经说的非常详细了:
1.使用 Eclipse Memory Analyzer 进行堆转储文件分析