为了账号安全,请及时绑定邮箱和手机立即绑定

带 G1GC 的 SerialOld GC

带 G1GC 的 SerialOld GC

富国沪深 2021-12-22 20:29:52
我正在使用 G1GC 并在 java 任务控制中发现以下内容:为什么它显示SerialOld?在配置中,它显示以下内容:
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我相信这是 G1 中的 Full GC 操作。JDK 10之前是串行的,JEP 307集成后现在是并行的。从这些阶段的持续时间也可以看出这一点:与常规 G1 周期相比,几乎是 4 秒。

看到源:G1全GC使用SerialOldTracer报告,现在它使用G1FullTracer。因此,在 JDK 10 之前,它会为 Full GC 报告“SerialOld”,现在它应该报告“G1Full”。


查看完整回答
反对 回复 2021-12-22
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

如前所述,这与 Full GC 相关,但对于不熟悉该概念的任何人,我将尝试澄清:

Full GC 仅在 G1GC 以某种方式无法跟上,或者某事/某人明确要求时才会发生。您现在可以紧急回退到经典的 stop-the-world 垃圾收集,而不是短(亚秒)大部分并发垃圾收集,这可能需要几秒钟(取决于堆使用情况)。

要确定导致 Full GC 的原因,您(或处于相同情况的其他任何人)可能需要启用 GC 日志记录。(例如:-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:<file-path>在 Java 9 之前和 Java 9 之前:)-Xlog:gc*:file=<file-path>。如果您确实确保将 GC 日志写入快速存储,请参阅:https : //engineering.linkedin.com/blog/2016/02/elimination-large-jvm-gc-pauses-caused-by-background-io-交通


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信