MAT工具的使用

luqing414 2015-08-04 05:47:24
我想使用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的内存吧
...全文
203 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rkxiaowen 2017-05-25
可以用jmap -dump生成hprof文件
  • 打赏
  • 举报
回复
luqing414 2015-08-05
没人用过吗?我后来还是下载了Stand-alone版本解决了,相当于我用了两个MAT,另外我想问下,这个工具难道只有在崩溃的时候才能生成hprof文件吗,我如果想分析潜在的可能导致内存泄露的地方,怎么弄
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2015-08-04 05:47
社区公告
暂无公告