gpt4 book ai didi

jvm - 为什么调用-XX :+PrintFlagsFinal and -XX:+PrintCommandLineFlags?时MaxHeapSze的输出不同

转载 作者:行者123 更新时间:2023-12-02 01:04:24 27 4
gpt4 key购买 nike

就像问题一样,当我使用 JVM 选项 -XX+PrintFlagsFinal 运行程序时,我可以看到打印的 MaxHeapSize 如下:

 bool MaxFDLimit                                = true            {product}
uintx MaxGCMinorPauseMillis = 4294967295 {product}
uintx MaxGCPauseMillis = 4294967295 {product}
uintx MaxHeapFreeRatio = 70 {product}
**uintx MaxHeapSize := 1044381696 {product}**
intx MaxInlineLevel = 9 {product}
intx MaxInlineSize = 35 {product}
intx MaxJavaStackTraceDepth = 1024 {product}

当我使用 JVM 选项 -XX+PrintCommandLineFlags 运行相同的程序时,我可以看到 MaxHeapSize 为:

-XX:InitialHeapSize=65192896 **-XX:MaxHeapSize=1043086336** -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 

你能告诉我为什么这两个不同吗?我认为它们应该是一样的。

最佳答案

由于对齐和人体工程学调整,实际堆大小可能与用户在命令行中指定的不同。默认情况下,堆是 2MB 对齐的 ( see collectorPolicy.cpp )。

1044381696 是 1043086336 的 2MB 对齐后的最终堆大小。

关于jvm - 为什么调用-XX :+PrintFlagsFinal and -XX:+PrintCommandLineFlags?时MaxHeapSze的输出不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24227299/

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