Java SE 6 中 Sun 的 JVM 的默认最大堆大小是多少?

2022-08-31 15:47:29

来自 Java SE 6 的 Sun 的 JVM 的默认最大堆大小是多少(即等效于设置 -Xmx)?

对于带有服务器级计算机的Java SE 5,它是

小于物理内存的 1/4 或 1GB。

奖励问题:看起来对于IBM的JVM,你可以问它

java -verbose:sizes -version

你能问一下Sun的JVM吗?

编辑

我使用 Runtime.getRuntime().maxMemory 来确认 sun 文档中引用的 min(physical memory/4, 1G)。


答案 1

java 1.6.0_21 或更高版本,左右...

$ java -XX:+PrintFlagsFinal -version 2>&1 | grep MaxHeapSize
uintx MaxHeapSize                         := 12660904960      {product}

看起来最小值(1G)已被删除。

或者在Windows上使用findstr

C:\>java -XX:+PrintFlagsFinal -version 2>&1 | findstr MaxHeapSize

答案 2

可以用一些Java代码来问:

long maxBytes = Runtime.getRuntime().maxMemory();
System.out.println("Max memory: " + maxBytes / 1024 / 1024 + "M");

请参阅 javadoc