【发布时间】:2014-10-05 08:46:12
【问题描述】:
我见过几乎所有的 JVM 内存参数,通常是 256 的倍数或 round 二进制值 - 例如256m、512m、1024m 等。我知道,这可能与物理内存 (RAM) 通常是二进制数有关,例如 256 MB、1 GB 等。
我的问题是,如果 JVM 内存设置为 256 的倍数或任何二进制值,它真的有助于内存管理吗?将 JVM 内存保持为十进制整数值(例如 1000m,而不是 1024m)是否会造成伤害 - 尽管我从未见过任何 JVM 使用这种被视为十进制 round 的值。
操作系统会在启动时将上述内存分配给 JVM,所以我想,对于 JVM 来说,它是否可以有效地管理四舍五入的内存大小(例如 1000 MB)还是一个问题缺点。
编辑:我知道,我们 CAN 使用十进制值作为 JVM 内存,但我的问题是 SHOULD 我们使用十进制值?
EDIT2:对于关于 JVM 在处理每种内存大小方面同样有效的意见/猜测,请分享您用于得出该结论的任何相关链接。我已经在其他开发人员中看到了足够多的WAR,但我还没有看到太多具体的理由支持十进制或二进制值。
【问题讨论】:
-
JIT 使您的变量正确对齐,所以我认为这并不重要。
-
@Pat 这无关紧要,即使您以 2 的倍数给出 1MB(考虑到字节 1024 * 1024)
标签: java memory-management jvm-arguments