Matzにっき経由で知ったのだけど、“Mostly-Concurrent Mark & Sweep GC のアルゴリズム”は面白いです。
.NETを初期の頃からいじっている人なら知っている人も多いと思うけど、.NETのGCについてはこの 辺りが今でもベスト記事だと思う。
その後この界隈は「参照にはnullをセットするな」みたいな俗説が見られるようになって、つまらなくなって読まなくなったけど…
monoのgenerational/moving/compacting GCは、機能的にほぼ完成しているみたいだけど、幕の内では相変わらず割り込み作業が多いようだ。何かめっさ高速らしいのだけど、Paoloもなぜかゴールデンウィーク中なので(?)連休中には何も出ないと思う。
Paoloのパッチは、誰もレビューする人が居ないから、ますます表に出てこないんだよねぇ。
コメント
NyaRuRu — 05/01/2006 04:31:53
GC
この辺もおもしろそうなんですな。
http://www.nminoru.jp/~nminoru/java/cms/pauseless\_gc.html
Copy on write も最初に聞いたときは「へー」と思ったんですけど、よく考えるとその後 PC 環境ではハードウェア絡みの新技をほとんどお目にかかってないような。
ぱっと思いつくのは MONITOR/MWAIT かな。小技っぽいですけど。
akiramei — 05/01/2006 19:57:12
.NETのGCだと、
Maoni氏のblog(http://blogs.msdn.com/maoni/)などにも情報が転がっていますね。
atsushieno — 05/02/2006 00:11:56
pauseless GC
あ、それも面白いですよね。hw依存とかなってしまうと、monoには実装されなさそう(やるとしても優先度が低い)でしょうけど…
copy on writeと言えば、これをGCに組み込んで使うというアイディアについて、まつもとさんが言及されていましたね。
http://www.rubyist.net/~matz/20041127.html#p01
Maoni氏のblog
あ、こちらは知りませんでした。ブクマしとこう :-)