Java OOM分析

106 阅读1分钟

开启OOM后生成dump文件

启动命令添加-XX:+HeapDumpOnOutOfMemoryError会在jar包所在目录生成.hprof文件

image.png

OOM

异常信息为:java.lang.OutOfMemoryError: Java heap space

image.png

Visual VM

打开E:\Java\jdk\jdk1.8.0_211\bin\jvisualvm.exe,选择装入

image.png

点击线程

image.png

找到出现问题的代码

image.png

代码:

// http://127.0.0.1:8080/hello?name=lisi
@RequestMapping("/hello")
@ResponseBody
public void hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {
    System.out.println("mname: " + name);
    List<byte[]> list = new ArrayList<>();
    while (true) {
        list.add(new byte[1024 * 1024]);
    }
}