java堆溢出测试
背景
最近在研读周志明老师的《深入理解Java虚拟机》一书,个人感觉,很精准干练,概念上不模糊拖沓。今天实践Java堆溢出时,踩了个坑,这里记录分享下!
问题
参照书本(我买的电子书)进行虚拟机参数设定,目的是探究堆溢出相关问题,设定如下图:
为了保证准确性,将电子书里的参数直接进行拷贝,参数如下:
-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError,
粘贴到图D所示区域。然后再走E、F,两步操作,结果弹出如下提示框:
提示:因为致命异常,不能创建Java虚拟机。
方案
在Google虚拟机参数设置时,对比电子书发现参数字符没问题,但从电子书拷贝过来的参数少了两个空格。
电子书为:
-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError
实际为:
-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
参数说明:
-Xms20m:堆最小为20M;
-Xmx20m:堆最大为20M;
将堆最大值与最小值设置为一样,可避免堆自动扩展。
总结:
大神略过,新手探秘jvm注意了!
(以上仅为个人读书笔记,如有不当,欢迎指正!)