ガベージコレクションのアルゴリズムと実装 序章、アルゴリズム編 第1章「GCを学ぶ前に」

ガベージコレクションのアルゴリズムと実装

ガベージコレクションのアルゴリズムと実装

今日は序章と、アルゴリズム編 第1章「GCを学ぶ前に」を読みました。

GC の歴史的経緯と、現在に到るまで「マーク&スイープ」「参照カウント」「コピーGC」の3つのアルゴリズムの派生しか埋まれていないそうです。

第1章は主に本書で使う単語の定義です。

  • ヘッダ - Ruby で言うと struct RVALUE でしょうか?
  • フィールド - 同じく struct RVALUE から参照されるヒープ上に確保したメモリ領域? Ruby 1.9 では struct RVALUE の一部もフィールドとして扱われている気がします
    • 保守的GC とは、フィールドの各値がポインタか非ポインタか判定できない場合のGC
  • ミューテータ(mutator) ≒ アプリケーション

アルゴリズム編を読む時にはあまり具体的な実装を思い浮かべながら読まないほうがいいかもしれませんね。