Oracle的JVM是否有最小的-Xmx设置?看起来-Xmx2M确实为应用程序提供了超过2 MB的堆大小,因为Java Memory MX bean告诉我它分配了10 MB ......
JVM是否会默认忽略Xmx设置?
答案 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。