gpt4 book ai didi

Java GC 概念 : CMSInitiatingOccupancyFraction

转载 作者:IT王子 更新时间:2023-10-28 23:32:24 26 4
gpt4 key购买 nike

我配置了以下内存选项:

export MEM_OPTS="-Xmx2560m -Xms2560m -XX:NewSize=786m -XX:MaxNewSize=786m -XX:+UseTLAB -XX:MaxPermSize=512m"

我的GC参数如下:

export GC1_OPTS="-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:**CMSInitiatingOccupancyFraction=50** -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveGCBoundary "export GC2_OPTS="-XX:+ExplicitGCInvokesConcurrent"

CMS 运行时,是在 2560 MB 的 50% 后运行还是在 512 MB 内存的 50% 后运行?什么概念?

我的总堆内存将等于 2560 + 786 + 512 MB,对吧?

或者是 "-XX:NewSize=786m -XX:MaxNewSize=786m" 对于非堆?

请解释一下这个概念。

最佳答案

两者都没有。老年代的占用率达到50%后才有资格运行,其中老年代的大小是堆的大小减去新生代的大小:2560m - 786m = 1792m,这样就可以在老年代达到896m。但这并不总是唯一的参数。如果您希望它成为唯一参数,您可能需要添加 -XX:+UseCMSInitiatingOccupancyOnly(尽管根据我的经验,CMS 实际上会在阈值处触发,即使没有它)。

总结一下:

  • -Xmx是总堆内存
  • -XX:NewSize/-XX:MaxNewSize是该堆内新生代的大小范围
  • 区别在于老年代的大小范围
  • -XX:PermSize/-XX:MaxPermSize是永久代的大小范围,也就是非堆内存

关于Java GC 概念 : CMSInitiatingOccupancyFraction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390118/

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