gpt4 book ai didi

java - GC(分配失败)[PSYoungGen]

转载 作者:行者123 更新时间:2023-12-05 04:03:48 25 4
gpt4 key购买 nike

最近我们将代码从 java7 切换到 java8。对于 PSYoungGen,我们每 10 分钟就会遇到一次 GC 分配失败。我们甚至尝试将开关 -XX:NewSize 和 -XX:NewMaxSize 设置为大约 5GB(总堆大小为 10GB)。但即使在打印 gc 分配失败并且 PSYoungGen 触发到几乎大小(5GB)之后。添加了一些日志:

[GC (Allocation Failure) [PSYoungGen: 3145728K->114922K(3670016K)] 3145728K->115026K(5767168K), 0.2511084 secs] [Times: user=0.26 sys=0.14, real=0.25 secs]
[GC (Allocation Failure) [PSYoungGen: 4443141K->125893K(4718592K)] 4443261K->126229K(6815744K), 0.2318927 secs] [Times: user=0.42 sys=0.22, real=0.24 secs]

在其中一个答案中:Java GC (Allocation Failure)与此相关我已经看到这是正常行为,只是想知道有什么办法可以克服这个问题吗?谢谢。

最佳答案

我认为您可能设置的 NewSize 正在控制整个新一代的大小(由伊甸园 幸存者空间组成)所以也许您的伊甸园的大小仍然不足以直接分配给新的大对象(例如,可能是大字节[])。

我想问的是,即使你将新设置为5Gb,我认为Oracle's docs建议 SurvivorRatio 默认为 8 意味着大约 1.25Gb 幸存者空间,留下 3.75 Gb 伊甸园。您是否可以分配高于或接近此大小的对象?

关于没有这样的日志,在您链接到您的 OP 的答案中,接受的答案发表评论

"Older JVM were not printing GC cause for minor GC cycles.

所以也许这一直在发生,只是您直到现在才知道。

关于java - GC(分配失败)[PSYoungGen],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53276185/

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