Java本地模拟内存溢出及生成dump文件
- 本地模拟内存溢出
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文件的存放目录