java中-Xmx标志的有效值

时间:2017-03-20 17:02:18

标签: java

在每个例子中,我都会看到java文档中的-Xmx标志(以及网络上的示例),它始终是2的幂。例如' -Xmx512m',' - Xmx1024m'等

这是一项要求,还是出于某种原因这是一个好主意?

据我所知,记忆力一般来自2;这个问题具体是关于java内存标志。

1 个答案:

答案 0 :(得分:3)

它使事情变得简单,但它更有利于你的利益。

没有特别的理由选择2的幂,或50 MB的倍数(也是常见的),例如-Xmx400m-Xmx750m

注意:JVM并未严格遵守此规定。它将使用它来计算不同区域的大小,如果你添加它们往往比你提供的数量略小。根据我的经验,堆减少1% - 2%,但如果你考虑JVM使用的所有其他内存区域,这并没有太大的区别。

注意:硬件的内存大小通常是2的幂(在某些PC上它是2倍的2倍)这可能让人们习惯于将内存大小视为2的幂。

BTW:AFAIK,在大多数JVM中,每个区域的实际大小是页面大小的倍数,即4 KB。