我很好奇如果我没有使用Java为初始JVM堆大小指定-Xms
会发生什么?
目前我有-Xms256m and -Xmx512m
,但这会在我的服务器上出错:
Failed to create JVM, return code is:-1
我相信JVM在256m起点上获得256MB的连续内存时遇到了麻烦。在今天之前,我们只有-Xmx256m
设置,但有一些内存不足的进程。
如果我删除-Xms
设置并且只保留-Xmx512m
',JVM是否可以正常运行?堆开始是什么?
如果没有声明起始堆,它如何获取连续内存?
答案 0 :(得分:2)
默认初始尺寸:
Larger of 1/64th of the System's physical memory on the machine or some reasonable minimum.
Before J2SE 5.0, the default initial heap size was a reasonable minimum, which varies by
platform.
答案 1 :(得分:2)
回答你的第一个问题。请看Ted Hopp的评论。的 How is the default java heap size determined? 强>
其次,您不需要指定最小堆大小和最小堆大小。您也输入错误。
应为-Xms256m -Xmx512m
在客户端类计算机上,初始堆大小为4Mbyte
,其中最大堆为64Mbyte
。
答案 2 :(得分:0)
不要放=
:
-Xms256m -Xmx512m
我认为默认值默认为2 MB,但这取决于您的Java版本和您的平台。我会尝试挖掘文档。