- 本地模拟内存溢出
1 package com.cnhis.test.dump; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 * OutOfMemoryError内存溢出模拟测试 8 */ 9 public class OOMTest { 10 11 public static void main(String[] args) { 12 List<String> list = new ArrayList<>(); 13 while (true){ 14 list.add("test"); 15 } 16 } 17 }
- idea设置VM参数
第一步:Edit Configurations
第二步:设置参数
第三步:dump文件生成,可以使用jstack、jmap、MAT等工具分析
注意:上面指定的dump输出文件夹“D:\dumpTest”必须存在,idea不会去创建
- 参数说明
-Xms:表示初始化堆内存
-Xmx:表示最大堆内存
-XX:+HeapDumpOnOutOfMemoryError 表示jvm发生oom异常时,自动生成dump文件
-XX:HeapDumpPath= 表示生成dump文件的存放目录