【问题标题】:jvm heap setting patternjvm堆设置模式
【发布时间】:2012-07-13 00:23:34
【问题描述】:

我观察到在设置堆大小时人们更喜欢值 64,128,256,1024..。如果我在这些数字之间给出一个值(比如 500),JVM 不会接受这个值吗?为什么这些数字很重要和首选?为什么我们还要以这种模式升级 RAM?

请帮我理解。

【问题讨论】:

  • 可能是因为人们更喜欢让他们的内存模块充满 JVM :)
  • 整数很漂亮。至于 RAM 升级,请尝试寻找 743 MB 的模块。
  • 这里的答案做出了可以使用更多证据的陈述。由于缺乏证据,公认的答案可能是我们最安全的选择。但我希望在其他答案中添加一些支持。

标签: java memory jvm


【解决方案1】:

JVM 将接受任何值,这没有问题。使用 2^n 值只是一种“约定”,在实践中使用其他值不会产生负面影响。

【讨论】:

    【解决方案2】:

    好吧,如果你这样想:

    • 1 字节为 8 位

    • 1 kb = 1024 字节

    • 1 mb = 1024 kb

    • 1 gb = 1024 mb

    • ...等等...

    不仅仅是2^n。计算中的内存与数字 8 密切相关——数字在大多数现代计算机中定义了一个字节。

    位组合在一起的主要原因是为了表示字符。由于所有事物计算的二进制性质,理想的“块”位是 2 的幂,即1, 2, 4, 8, 16, 32...。 (基本上是因为它们总是可以分成更小的相等的包(它还创建了存储大小的快捷方式,但这是另一回事))。显然 4 位(在某些圈子中是 nybble)可以给我们 2^4 或 16 个唯一字符。由于大多数字母都比这个大,所以 2^8(或 256 个字符)是更合适的选择。

    存在使用其他长度字节(特别是 7 或 9)的机器。这并没有真正幸存下来,主要是因为它们不那么容易操纵。您当然不能将奇数分成两半,这意味着如果您要分割字节,则必须跟踪位串的长度。

    最后,8 也是一个方便的数字,很多人(心理学家等)声称人类的大脑通常只能立即回忆 7-8 件事(不玩记忆技巧)。

    【讨论】:

    • 这个答案关注的是机器的理想字节大小,但我看不出它与 JVM 的堆大小(字节的倍数)有什么联系
    【解决方案3】:

    如果它不接受该值,请检查您是否输入了 megabytes(Mm) 或 gigabytes(Gg) 修饰符。

    示例:java -Xms500M -Xmx500M -jar myJavaProgram.jar

    另外,看看这个link

    【讨论】:

      【解决方案4】:

      为什么我们也以这种模式升级 RAM。

      这是因为内存芯片/卡/的大小是 2 字节的幂。其根本原因是它使电子设备更简单。更简单意味着更便宜、更可靠和(可能)更快。

      【讨论】:

      • 据我了解,由于内存总线的大小,内存大小是 2 的幂。我将使用一个小/简单数字的例子。假设您有一台具有128 字节内存(内存空间范围为0b0000_00000b0111_1111)的机器,您想升级到192 字节(这需要新的寻址0b0111_1111 - 0b1011_1111 的能力) )。这样做需要将内存总线从 7 个引脚扩展到 8 个引脚。但是到那时,您可以寻址 256 个字节(最大地址。0b1111_1111),其中一半会被浪费掉。
      • 如果那是正确的,那么我不明白它与 JVM 的大小有什么关系
      • 我的回答中没有提到 JVM 大小。我只是在回答有关 RAM 大小的问题。
      • 哦,是的,我想我是因为整个问题才读到它的。说得通。不过,我在第一条评论中的理解是否正确?
      【解决方案5】:

      除了非书面约定外,它还具有性能影响 - 取决于机器的架构。

      例如,如果一台机器是基于三进制的,那么将堆大小设置为 3 的幂会更好。

      【讨论】:

      • "将堆大小设置为 3 的幂的值会更好。" 为什么会这样?如果这是真的,那么二进制机器是否也可以使用 2 的幂的值工作?
      猜你喜欢
      • 1970-01-01
      • 2016-03-17
      • 2010-10-20
      • 2021-01-22
      • 2012-07-18
      • 2021-06-03
      • 1970-01-01
      • 2019-04-20
      • 2016-06-22
      相关资源
      最近更新 更多