Java GC

Stop-the-World を目で見る

Java GC 年代記

Serial GC から Generational ZGC まで、HotSpot のガベージコレクタをリリースされた順に。 ヒープの中身がどう印を付けられ、どう片付けられ、その間アプリケーションスレッドが何秒止まるのかを、 1 フェーズずつ進めながら確かめる。

—

—

—

スレッドの動き

赤=Stop-the-World(アプリ停止)/ 青=並行(アプリと同時に GC)・帯をクリックで移動

最大停止時間の目安

対数目盛り・数 GB 級ヒープでの代表的な値(実測ではなくオーダーの目安)

停止時間はヒープサイズ・生存オブジェクト量・スレッド数・割り当て速度で大きく動く。 ここで読み取ってほしいのは絶対値ではなく、Serial から ZGC まででおよそ 3〜4 桁縮んだという事実のほう。

0 / 0 Space で再生/停止