1

可能重复:
如何确定默认的 Java 堆大小?

我很好奇如果我没有-Xms为 Java 指定初始 JVM 堆大小会发生什么?

目前我有-Xms256m and -Xmx512m,但这在我的服务器上给了我一个错误:

Failed to create JVM, return code is:-1

我相信 JVM 在以 256m 的起点获取 256MB 的连续内存时遇到问题。在今天之前,我们只有一个-Xmx256m设置,但有一些进程内存不足。

如果我删除-Xms设置并留下-Xmx512m'?堆从什么开始?

如果没有声明起始堆,它如何获取连续内存?

4

3 回答 3

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.

于 2012-08-15T15:06:03.873 回答
2

回答你的第一个问题。请看特德霍普的评论。 默认的 java 堆大小是如何确定的?

其次,您不需要指定最小和最大堆大小。您也输入错误。

它应该是-Xms256m -Xmx512m

初始堆大小将是客户端类机器上4Mbyte最大堆。64Mbyte

于 2012-08-15T15:11:36.030 回答
0

不要把=

-Xms256m -Xmx512m

我认为默认值在历史上为 2 MB,但这取决于您的 Java 版本和您的平台。我会尝试挖掘文档。

于 2012-08-15T15:03:37.027 回答