OOM排查
当需要排查内存溢出出现的问题时,我们可以设置虚拟机参数:
-XX:+HeapDumpOnOutOfMemeryError
当发送OOM时,会打印出堆内存快照信息。
实例:
(1)配置虚拟机参数

这里为了更快的出现OOM,我把堆内存最大设为了10m
(2)不停的创建对象

(3)发生了OOM

(4)生成了堆快照信息,默认存储位置是项目根目录下

(5)使用专业的解析工具打开,我使用的是Eclipse的MemoryAnalyzer,使用该工具打开快照文件。

可以点击扇形图,查看出现问题的区域,再点击堆快照信息的树状图

可以看到是哪个线程造成了OOM,并且可以看到是哪些对象占用内存最大

这样你就可以排查到出现问题的地方,检查代码。
浙公网安备 33010602011771号