0

Oracle 的 JVM 是否有最低 -Xmx 设置?看起来 -Xmx2M 确实为应用程序提供了超过 2 MB 的堆大小,因为 Java Memory MX bean 告诉我它分配了大约 10 MB ......

JVM 是否有最低限度的静默忽略 Xmx 设置?

4

2 回答 2

2

如果我跑

public static void main(String[] args) {
    System.out.println("Heap size is " + Runtime.getRuntime().totalMemory() / 100000 / 10.0 + " MB");
}

-mx8mJava 7 更新 25 64 位上我得到

Heap size is 8.0 MB

但如果我和我一起跑步,-mx2m我会得到

Heap size is 3.2 MB

所以看起来你得到的堆比你要求的非常小的尺寸略多。但是,即使对于小型移动设备,我也不必担心每一个最后的 MB,因为 JVM 本身要大得多(可能超过 100 MB 的共享内存、线程等)

即,如果您不能腾出几 MB,那么您将无法运行 JVM。

于 2013-08-13T18:33:20.040 回答
0

要让 jvm 启动,至少需要 2mb 的堆大小。您可以将堆大小设置为 0 字节,但 jvm 不会启动。建议的最大堆大小是总内存的 1/4。

于 2013-08-13T18:42:48.240 回答