- 本地模擬內存溢出
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文件的存放目錄