gpt4 book ai didi

Java 最大内存是否 Xms=Xmx 不同

转载 作者:行者123 更新时间:2023-11-30 10:40:45 25 4
gpt4 key购买 nike

运行以下主要方法:

public class Test {
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().maxMemory() / (1024.0d * 1024.0d));
}
}

与:

  1. -Xmx6G 导致输出 5461.5
  2. -Xmx6G -Xms6G 结果输出 5888.0

它们为什么不同?

我在 Windows 上运行 Java HotSpot(TM) 64 位服务器 VM 1.8.0_60。

最佳答案

Xmx配置托管堆总大小的上限。这与 java 对象的可分配数量不同。

这是由于分代堆布局,其中堆的某些部分将始终未使用或仅临时使用。例如。当收集器未运行时,两个幸存者空间之一始终为空。

设置初始堆大小会影响其他设置,主要是各代的相对大小以及可用于 java 对象的数量。

要查看您可以运行的实际受影响的设置

diff <(java -Xmx6G -XX:+PrintFlagsFinal) <(java -Xmx6G -Xms6G -XX:+PrintFlagsFinal)

关于Java 最大内存是否 Xms=Xmx 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com