-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError
以上参数:
-Xms20m:表示堆的最小值为20M
-Xms20m:表示堆的最大值同样设置为20M,
-XX:+HeapDumpOnOutOfMemoryError:表示的意思是可以让虚拟机在出现内存溢出异常是Dump(倾倒,倾卸,垃圾场,倒垃圾)出当前内存堆转储快照以便事后进行分析。
在Debugconfiguration中配置以上参数,运行一下代码:将出现最下面的异常。-Xms20m-Xmx20m -XX:+HeapDumpOnOutOfMemoryError
当改变上面的数值的参数后,可以改变运行了的次数。
入以下代码:
packagecom.it;
importjava.util.ArrayList;
importjava.util.List;
publicclassHeapOOM {
staticclassOOMObject{
}
publicstaticvoid main(String[] args) { int i = 0; List<OOMObject> list = new ArrayList<OOMObject>();
}
}
出现的异常如下:
1005306
1005307
1005308
java.lang.OutOfMemoryError: Javaheap space
Dumping heap to java_pid4568.hprof ...
Heapdump file created [22044099 bytes in 0.4 secs]
Exceptionin thread "main" java.lang.OutOfMemoryError: Java heapspace atjava.util.Arrays.copyOf(Unknown Source)
atjava.util.Arrays.copyOf(Unknown Source)
atjava.util.ArrayList.ensureCapacity(Unknown Source)
atjava.util.ArrayList.add(Unknown Source)
说明:(22044099/1024)/1024 atcom.it.HeapOOM.main(HeapOOM.java:14) = 21M,比配置过的参数多1M(一般比配置的数值大).此程
序片段运行了1005308次,运行时间是0.4秒。出现的异常是堆内存溢出异常。
在运行以上程序片段期间,CPU使用率也将上升,几度为100%。运行之前的截图如下:
运行之后的截图如下:
Copyright © 2019- tjwe.cn 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务