Java堆大小:为什么使用2的幂?

参见英文答案 >
jvm heap setting pattern                                    5个

通常,当我看到使用-Xms和-xmx JVM参数设置Java堆大小的示例时,人们使用两个幂:

128m, 512m, 1024m, etc.

这有什么原因吗?这在某种程度上对JVM性能有益吗?或者这样做是因为程序员倾向于喜欢2的幂? (或者因为默认值是64米?)

附:
当然我知道你可以使用你想要的任何数字(-Xmx666).但人们倾向于使用2的权力.

最佳答案 我不知道为什么其他人会这样做但是对我来说,这是一种惯例,因为内存模块使用了这两种内存模块,所以它的内存大小为2,而b)我从内存中知道两个高达65536的所有权限,所以它是这不是额外的努力.

但是从操作系统/内存的角度来看,使用2的幂来分配兆字节没有任何影响.如果我们讨论的是较小的大小(如511或512字节),那么操作系统的内存管理子系统将对这些值进行舍入.但没有操作系统为兆字节轮.

点赞