【问题标题】:Why Old generation objects clearing up by minor GC为什么次要 GC 清除老年代对象
【发布时间】:2021-07-01 02:41:52
【问题描述】:

我正在使用 Java 11 和 G1GC。我正在开发的应用程序是一个大数据应用程序,而我注意到的奇怪之处在于我正在 24 小时监控该应用程序,并且没有发生重大 GC。但是 Old gen 的大小会周期性地一次又一次地下降,巧合的是,当 Minor GC 在同一分钟花费大量时间时,就会发生这种情况。
我无法理解为什么次要 GC 的峰值会清除旧代的数据。

【问题讨论】:

    标签: java garbage-collection g1gc


    【解决方案1】:

    G1 GC 还具有混合 GC 的概念,这使 G1 GC 得名 - 垃圾优先。在这次 GC 中,年轻代以及来自 Old 空间的一些包含垃圾最多的区域被清理,即 Garbage First。这种机制允许 G1 GC 尽可能长时间地尝试避免 Full GC。由于完整 GC 主要负责与垃圾收集相关的较长暂停时间,因此 G1 GC 能够最大限度地减少对这些昂贵操作的需求。

    【讨论】:

    • 优秀的答案和正确的。请注意,有一些参数可让您指示 G1 在混合集合中考虑多少。
    猜你喜欢
    • 2021-07-08
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2012-07-28
    • 2016-06-02
    相关资源
    最近更新 更多