JVM记录一次使用IDEA+JProfiler 来定位OOM 到代码解决方案
1.idea插件安装jprofiler
安装插件后重启idea
2.安装jprofiler Windows客户端
安装地址:
一路next这个是收费的 免费评估10天
3.idea客户端配合Jprofiler插件使用
先来一段导致OOM的代码
package com.company;
import java.util.ArrayList;
public class TestOOM {
public static void main(String[] args) {
ArrayList<Object> arrayList = new ArrayList<>();
while (true) {
arrayList.add(1);
System.out.println(arrayList.size());
}
}
}
代码写好之后 点击启动
控制台报错OOM
打开我们的神器 jProfiler 客户端
选择这个新窗口,打开快照,找到对应的 java_pid10404.hprof 这个是堆栈快照
**定位到是第十行代码导致的OOM
回看代码发现确实是 add()方法导致的 定位到了具体的出错代码 over~**