使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案

前言

最近在排查公司线上BUG时,发现程序报OOM异常。在线上截取好了堆栈快照,然后下载hprof文件到本地用JProfiler或MAT打开,结果发现由于hprof有4G左右,JProfiler和MAT都无法打开hprof文件。

正文

在网上找到了MAT的解决方案,就是修改MAT目录下的MemoryAnalyzer.ini配置文件,修改为下列:

-vmargs
-Xmx4g

然后再去启动MAT,发现竟然能慢慢的读取hprof。
使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_第1张图片
使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_第2张图片
到这里,突然想到也可以调整JProfiler的启动文件的内存大小,然后就找到了jprofiler.vmoptions,修改配置如下:

-Xmx4036m
-Xss2m

然后使用jprofiler启动hprof文件,等些许分钟之后,就启动成功了。
使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_第3张图片
使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_第4张图片
然后就可以用JProfiler或者MAT去愉快的分析内存溢出的问题了。

你可能感兴趣的:(JProfiler,MAT,hprof,JVM内存快照分析,开发工具,日志监控)