Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最小Oracle Java VM堆内存设置?_Java_Jvm - Fatal编程技术网

最小Oracle Java VM堆内存设置?

最小Oracle Java VM堆内存设置?,java,jvm,Java,Jvm,Oracle的JVM是否有最小-Xmx设置?看起来-Xmx2M确实为应用程序提供了超过2MB的堆大小,正如Java内存MXbean告诉我的那样,它分配了大约10MB的内存 是否存在JVM默认忽略Xmx设置的最小值 public static void main(String[] args) { System.out.println("Heap size is " + Runtime.getRuntime().totalMemory() / 100000 / 10.0 + " MB");

Oracle的JVM是否有最小-Xmx设置?看起来-Xmx2M确实为应用程序提供了超过2MB的堆大小,正如Java内存MXbean告诉我的那样,它分配了大约10MB的内存

是否存在JVM默认忽略Xmx设置的最小值

public static void main(String[] args) {
    System.out.println("Heap size is " + Runtime.getRuntime().totalMemory() / 100000 / 10.0 + " MB");
}
使用Java 7上的
-mx8m
更新25 64位

Heap size is 8.0 MB
但是如果我使用
-mx2m
运行,我会

Heap size is 3.2 MB
因此,看起来您得到的堆比非常小的尺寸要求的堆稍多。然而,即使对于一个小型移动设备,我也不会担心最后的每一个MB,因为JVM本身要大得多(可以超过100 MB的共享内存、线程等)


i、 e.如果你不能腾出几MB的空间,你无论如何也无法运行JVM。

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

当堆很小时,它只是JVM大小的一小部分。我不知道为什么这一点很重要。我正在开发一个在低内存条件下延迟加载(和卸载)的框架,我想测试我的框架的最小Xmx设置是什么。我知道这个页面,但找不到任何记录在案的最小Xmx设置。我假设一个真正的应用程序会比你的框架做得更多。如果您可以使用可以设置的最小堆运行,我不确定问题是什么。这有点奇怪:最小堆大小似乎是2M,否则JVM根本无法启动。但是,如果指定了2M,我们将得到3.2M。这个问题是否有一个明确的答案:为什么会这样?我只能猜测它为JVM的启动增加了一些功能,但我不确定。也许阅读OpenJDK的源代码会有一个关于为什么这样做的评论。