ガベージコレクションのアルゴリズムと実装 第12章「V8 の GC」その5

今日も「V8 の GC」のコンパクション処理のところからです

  • forwarding ポインタをオフセットにして、さらにページ構造を導入することで11ビットで forwarding ポインタ相当の情報を詰め込んでる。すごい。
  • Map オブジェクトのポインタも同様。余分なフィールドを作らずメモリ効率を考えた工夫。
  • 記憶集合の更新

これで第12章「V8 の GC」も終わりました。
V8 の GC を読んでみて、細かな工夫が思いっきり詰め込まれていて楽しいという一方、C++ の勉強をしないといけないかな、という気になってきました。最近のプロジェクトは C++ で書かれていることが多いので、それなりに読める程度には知っておかないといけないという気がしてきました。

さて、長かった「ガベージコレクションアルゴリズムと実装」も今日で終わりです。「補遺」は PythonRuby の簡易言語入門なので省略します。6/21 から読み始めてますので、ほぼまる2ヶ月かかりました。予定していたよりもだいぶ長引いてしまいました。梅雨や猛暑という天候で朝の時間が思った程取れなかったことや、当初は25分読んで5分で記録書くというつもりだったのですが、メモしつつ読むスタイルにしてしまったのでメモに手を取られて読む速度が遅くなったことがありますが、本書のボリュームや内容の濃度を考えるとそこそこ妥当なところだったとも思います。

とはいえ次はもうちょっと読む速度も速くすることに挑戦してみたいと思います。次は「プログラマのための文字コード技術入門」を読んでみようと思います。