まさとです.

> とすると、拡張ライブラリとかでたとえば配列の要素を直接変更し
> たらrb_gc_check_refを呼ばないとまずいということでしょうか?
> しかも、忘れるとかなりまずくありませんか?

かなりまずいです.

> この辺をどう克服するか、ですね。
> 良い手は思い付かないけど。

ですね.
メモリ領域にプロテクトをかけるという方法が
ありますが,これだとシステム時間が増えてしまうという
問題点があります.
もうすこし評価をとらないと何とも言えませんが.
なにかよい方法を考えてみます.

> 両方です。現在のGCは割り当てたオブジェクトの数と割り当てたメ
> モリ領域サイズの合計がそれぞれある定数を越えたときにGCを開始
> していますが、たとえばこれを可変にすることで、もうちょっとイ
> ンテリジェント(かつヒューリスティック)に起動できるような気が
> します。極端な話、大量のオブジェクトが割り当てられ、そのほと
> んどが生きている状況ではGCを頻繁に呼び出すより、仮想記憶に負
> 担をかけてでもメモリを捻出した方が賢いですよね。

すばらしいです.
僕も今それを考えているところです.
特に,ヒューリスティックな方法を.
生きているオブジェクトの増加に,ある程度の法則性を
見出しているので,多分可能かと思います.
もうすこし,多くの種類のアプリケーションから
評価をとってみて結論は出したいと思っています.

> この辺の評価も含めて、コラムを書きませんか?
> 英語もあるとなお良しですが。

たぶん僕の修論がそのままコラムになりそうですね.
一般的なGCの方法の説明,RubyのGCの評価,
世代別GCを実装したときの評価などがありますから.
英語版は...がんばってみます.
今月末に論文の〆切がありますので,すぐにという
のは難しいですが,できるだけ早く
修論を仕上げてご報告させていただきます.

では