我想使用MAT工具,按照网上的教程,下载了Eclipse的插件,完后写了一个简单的内存溢出的程序
public class Test {
public static void main(String[] args) throws Exception {
Map<Integer, Date> map = new HashMap<Integer, Date>();
for (int i = 0; i < 600000000; i++) {
System.out.println("i:" + i);
map.put(i, new Date());
}
}
}
运行一段时间后,内存确实溢出了,也生成了hprof文件,不过我在Eclipse打开它的时候,它报错An internal error occurred during: "Parsing heap dump from 'E:\androidworkspace\TestJava\java_pid5212.hprof'",我在网上查了下,说是分配给MAT的内存少了,有两种解决方案:
一种是修改启动参数 MemoryAnalyzer.exe -vmargs -Xmx4g
另一种是编辑文件 MemoryAnalyzer.ini,在里面添加类似信息 -vmargs – Xmx4g
不过我这里都不太明白,这个修改启动参数是在哪里修改啊?或者第二种,我没有这个MemoryAnalyzer.ini,我是在官网下载的Eclipse的MAT插件,下载选择的是“Archived Update Site”,下载下来就是一个zip包,里面都是一些jar包,除非选择“Stand-alone Eclipse RCP Applications”下载下来的才有这个文件,怎么搞,我不想重新下载Stand-alone版本了,我觉得插件版本应该也可以设置分配给MAT的内存吧