gpt4 book ai didi

java - 使用可用堆重复 Full GC

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

即使堆未完全使用,我也会遇到重复的 Full GC。

这是 gc 日志的样子:http://d.pr/i/iFug (蓝线是已使用的堆,灰色矩形是 Full GC)。

这似乎是一个类似于此问题中发布的问题:Frequent full GC with empty heap

但是,该线程并未提供问题的任何实际答案。我的应用程序确实使用 RMI,并且生产服务器确实在升级 45 之前使用 1.6,它将 GC 间隔从 1 分钟增加到 1 小时(http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/relnotes.html)。但是,从日志的其余部分,我看不到 Full-GC-every-1-min 模式。

这可能是什么原因造成的?

最佳答案

最有可能的原因是您已达到堆的当前大小。堆的大小小于您设置的最大值,并在程序运行时进行调整。

例如假设您设置最大 1 GB,初始堆大小可能为 256 MB,当您达到 256 MB 时,它会执行完整的 GC,在这次 GC 之后,它可能会决定 400 MB 是更好的大小,当达到执行完整的 GC 等。


当永久空间已满或找不到可用空间时,您将获得一个主要集合。例如,如果它是碎片化的。

如果您的幸存者空间太小,您也可以获得完整的 Collection 。

总之,最有可能的原因是你使用的gc调优参数。我建议您简化调整参数,直到您的系统以您期望的方式运行。

关于java - 使用可用堆重复 Full GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035717/

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