通常,当我看到使用-Xms
和-xmx
JVM参数设置Java堆大小的示例时,人们使用2的幂:
128m, 512m, 1024m, etc.
真的有这个原因吗?这在某种程度上对JVM性能有益吗?或者这样做是因为程序员倾向于喜欢2的幂? (或者因为默认值是64米?)
P.S。
当然我知道你可以使用你想要的任何数字(-Xmx666
)。但人们倾向于使用2的权力。
答案 0 :(得分:1)
不,你可以使用任何价值。无需2
的力量。
例如:
-Xms4043m -Xmx8303m
答案 1 :(得分:1)
我不知道为什么其他人会这样做,但对我来说,这是一种惯例,因为内存模块使用了这两种内存模块,所以RAM的大小为2,而b)我知道内存模块的所有权限都高达65536 ,所以这不是额外的努力。
但是从操作系统/内存的角度来看,使用2的幂来分配兆字节没有任何影响。如果我们讨论的是较小的大小(如511或512字节),那么操作系统的内存管理子系统将对这些值进行舍入。但没有操作系统为兆字节轮数。