[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 メーリングリストの案内