なぜアルゴリズムを学ぶのか
GCによる停止時間が長くなり,
その際大事なのは,
GCのチューニングを行うときは,
今回は,
- マーク&スイープGC
- コンパクション
- コピーGC
- 世代別GC
GCのアルゴリズムはJVMの実装によって異なりますが,
GCを2つのフェーズに分けて実行する ~マーク&スイープGC
これまでの連載からイメージしやすいGCアルゴリズムは,
- 1つ目のフェーズ
- ⇒ゴミとなっていないオブジェクトを探す
(マークフェーズ) - 2つ目のフェーズ
- ⇒ゴミとなったオブジェクトを削除するフェーズ
(スイープフェーズ)
マークフェーズでは,
スイープフェーズでは,
マーク&スイープGCでは,
断片化が多発してしまうと,
まず,
バラバラに配置されていたオブジェクトを連続して配置する ~コンパクション
ヒープ内にバラバラに配置されていたオブジェクトを,
コンパクションにより,