4月末からちょろちょろ読み始めてやっと読了。(遅
まぁ、途中お仕事やらでどたばたしていたからなぁ...。
日本で初のガベージコレクタ(GC。メモリ内のお掃除プログラム)本を謳う本書。[筆者による紹介ページ]
最近のプログラム言語の裏で働いているガベージコレクタについて解説している。かなりニッチな内容。故に知的好奇心をそそられる本である。
自分の場合、この本を読むまではGCってやたらと種類があるけど、とりあえずSunのjavaには世代別GCが標準で搭載されてるよ!程度の知識しかなかったので色々と勉強になった。
色々なGC実装があるけど、基本はMarkSweepGC,ReferenceCountingGC,CopyingGCの3パターンで後はそれの組み合わせか応用でできているというのは意外だった。これら3つのパターンとは全く異なる斬新なアイデアってないもんかなぁ...?
アルゴリズム編と実装編の2部構成になっているが実装編は一気に読み進めないと忘れちゃうのがネックだなぁ。まぁでも内容は面白い。特にPythonの参照カウントの章では言語実装者の努力が読み取れる。おかげで利用者はぬるく作れるわけですね。
Java等で利用されている並列GCなど、より発展した内容は本書の対象外だが、並列GCは同じ筆者さん作成のスライドを以前見つけたのでついでに紹介しておこう。http://www.slideshare.net/authorNari/gc-4919474
難点はやや分厚いということだろうか。電車内で立ちながら読むにはちょっときつい。
後、初版だからしょうがないと思うが結構表記ミスがある。正誤表を印刷してから読み始めよう。自分が気づいた例だと、p74の図6内のルートから出てる矢印かなぁ。まだBの子オブジェクトであるAを走査してない段階なのでB'に切り替わっているのは違うのではないかと思った。
まぁそれを差し引いたとしても、GCを日本語で学びたいとしたらバイブル的な存在でしょう。