[Yarv-devel] GC Tech. on Script Lang.

K.Sasada ko1 @ namikilab.tuat.ac.jp
2004年 2月 7日 (土) 12:14:24 EST


  matz at ruby-lang.org (Yukihiro Matsumoto) wrote :
    [ Re: [Yarv-devel] GC Tech. on Script Lang. ]
    at Sat, 07 Feb 2004 11:10:41 +0900

> そうです。以前の世代別GCの実装でライトバリアを入れるのはそん
> なに大変でないことが分かっていますから、そこでフラグを立てれ
> ばよいと考えています。

 実装が大変じゃない、ってことだと思うのですが、何箇所くらい手
を入れたんでしょうか。


> ローカルヒープではなく、レジストリ(要するにポインタの配列)で
> 記録しておこうと思います。別のアイディアとしてはリンクトリス
> トにしておくというのも考えましたが、配列に比べるとちょっと扱
> いが面倒そうです。配列サイズの調整は検討の余地ありですね。

 登録されたオブジェクト(?)の回収のタイミングって何時ごろ
でしょうか。多分、全てのオブジェクトは最初は全部そいつに登録
されるんですよね。その配列が埋まったとき、かな。

 GCが発生したときはその配列も初期化する必要があるのでしょうね。
ただ単に stack になってて sp ずらすだけかな。それとも、この配列
へのGCと同期するようになるのかな。

 (メソッドなど)フレーム単位でそういうの記憶しておくの考えて
たことがあるんですが、それだと1フレームが長いorガンガン作るやつ
だとまずそうで。

 フレーム抜けたタイミングでスレッドごとのその登録する配列のGC
を行えば、マークする必要がないので、速い、のかな? これやると
また ruby のメソッド呼び出しは遅い、と言われてしまいそうだけど。


 あぁ、そういう話が次の講義ですか。


-- 
// SASADA Koichi @ namikilab.tuat.ac.jp
//



Yarv-devel メーリングリストの案内