gpt4 book ai didi

Java 堆大小 - 没有 AdaptiveSizePolicy 的年轻代大小

转载 作者:行者123 更新时间:2023-11-29 08:48:15 27 4
gpt4 key购买 nike

今天,我在调整 Java 堆大小时注意到一个奇怪的行为。作为确定年轻一代大小的参数,我选择:

-XX:NewSize=2100M
-XX:MaxNewSize=2100M

另外,我关闭了 AdaptiveSizePolicy:

-XX:-UseAdaptiveSizePolicy

根据这 3 个参数,我的年轻一代应该一直是 2100M。但是当我查看我的 gc-log 时,大小只有大约 1900 MB (~89%)。当尝试不同的大小时,日志中的年轻代的百分比大致相同 (~89%)。

整个堆是 5 GB。在日志文件中,整个堆的大小很好(~ 4,97 GB)。我使用的收集器是用于新生代的 PSYoungGen 和用于老年代的 ParallelOldGC。

有人可以简要解释一下为什么年轻一代的规模比应有的要小吗?

最佳答案

有没有可能你只看伊甸园空间而不是整个年轻一代?

-XX:NewSize 控件' Maximum size of new generation (in bytes) ’这不仅仅是‘伊甸园空间’,它还用来管理两个‘幸存者空间’。这些之间的比率可以使用 -XX:SurvivorRatio 控制

参见 this link .

例如,我使用安装了 visualGC 插件的 visualVM 来检查使用以下 VM 参数 -XX:NewSize=256M 和 -XX:SurvivorRatio=4 运行的 java 进程。

enter image description here

我的伊甸园空间是170.750M我的幸存者0是42.625M我的幸存者1是42.625M

170.750 + 42.625 + 42.625 = 256M

关于Java 堆大小 - 没有 AdaptiveSizePolicy 的年轻代大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019290/

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