1回目のマイナーGCまでの流れを把握する
前回は,
まず,
アプリケーションが処理を実行していくと,
Eden領域がいっぱいになり,
このように,
1回目のマイナーGCでは,
- From領域 ⇒Eden領域,
Survivor 0領域 - To領域 ⇒Survivor 1領域
しかし,
マイナーGCのコピー処理が終わると,
そして,
2回目のマイナーGCでは動作が異なる
1回目のGCが終わり,
2回目のマイナーGCでは,
- From領域 ⇒Eden領域,
Survivor 1領域 - To領域 ⇒Survivor 0領域
Survivor 1領域には,
Survivor 1領域にあるオブジェクトの中には,
- Eden領域にある生きているオブジェクト
- Survivor 1領域で引き続き生きているオブジェクト
オブジェクトのコピーが終わると,
- Eden領域にある
「死んだオブジェクト」 と 「コピーされたオブジェクト」 - Survivor 1領域にある
「すべてのオブジェクト」
そして,
3回目以降のマイナーGCでは,