世代別ガベージコレクション

提供: MonoBook
2021年10月28日 (木) 02:33時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「'''世代別GC'''(英語:generational garbage collection)とは、メモリ領域を複数の「世代」にわけて、それぞれ異なるガベージコ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

世代別GC英語:generational garbage collection)とは、メモリ領域を複数の「世代」にわけて、それぞれ異なるガベージコレクションアルゴリズムを使用する方式である。

ほとんどは「コピーGCマーク&スイープのハイブリッド」である。このふたつは一長一短である。

コピー マーク&スイープ
ガベージコレクション自体の処理速度 遅い 速い
メモリ断片化(後のメモリ確保処理の速度) 解消(速い) 発生(遅い)

そこでメモリ領域を「世代」に分けて、適している方を使うというものである。

メモリ確保直後はコピー方式の領域に格納され、長時間開放されないようならマーク&スイープ方式の領域に移される。

また「一定以上のメモリ確保」の場合は最初かららマーク&スイープ方式の領域に確保される。