最低Oracle Java VM堆内存设置?

时间:2013-08-13 18:16:32

标签: java jvm

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

JVM是否会默认忽略Xmx设置?

2 个答案:

答案 0 :(得分:1)

如果我跑

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

在Java 7更新25上使用-mx8m我得到

Heap size is 8.0 MB

但如果我使用-mx2m,我就会

Heap size is 3.2 MB

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

即。如果你不能省去几MB,你无论如何都无法运行JVM。

答案 1 :(得分:0)

对于jvm,要求最小2mb的堆大小是必需的。您可以将堆大小设置为0字节,但jvm将无法启动。 建议的最大堆大小是总ram的1/4。