2 回答

TA貢獻(xiàn)1909條經(jīng)驗 獲得超7個贊
我相信這是 G1 中的 Full GC 操作。JDK 10之前是串行的,JEP 307集成后現(xiàn)在是并行的。從這些階段的持續(xù)時間也可以看出這一點:與常規(guī) G1 周期相比,幾乎是 4 秒。
看到源:G1全GC使用的SerialOldTracer
報告,現(xiàn)在它使用G1FullTracer
。因此,在 JDK 10 之前,它會為 Full GC 報告“SerialOld”,現(xiàn)在它應(yīng)該報告“G1Full”。

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊
如前所述,這與 Full GC 相關(guān),但對于不熟悉該概念的任何人,我將嘗試澄清:
Full GC 僅在 G1GC 以某種方式無法跟上,或者某事/某人明確要求時才會發(fā)生。您現(xiàn)在可以緊急回退到經(jīng)典的 stop-the-world 垃圾收集,而不是短(亞秒)大部分并發(fā)垃圾收集,這可能需要幾秒鐘(取決于堆使用情況)。
要確定導(dǎo)致 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-交通
添加回答
舉報