nariです。

2012年1月5日8:26 SASADA Koichi <ko1 / atdot.net>:
>  ささだです.
>
> (2012/01/04 22:48), Yukihiro Matsumoto wrote:
>> 「bitmapあるからfreelistなくす」のもありえると思いますが、性
>> 能特性はどうなるのかな。明示的なsweepが要らないぶんと割り当て
>> 時にスキャンが発生するのとのトレードオフかなあ。
>
>  メモリアクセスが減る(かもしれない)ので,実測値を知りたいところです.
> まぁ,そのへんは実装によると思いますが.
>

その辺りはどうなんでしょう…。実装するのはそれほど難しくないので、試し
に実装して計測してみます。

実装的には、sweep時に解放対象のオブジェクトに対してはobj_free()を呼ぶだ
け、flagsは0にしない、freelistも繋がない、スロットをsweepしたあとに
bitmapをクリアしない、オブジェクトアロケーション時にbitmapスキャン、み
たいなのを考えています。

>> | あと,nari さんが PRO で提案していた手法だと,「ビットマップ探索高速化
>> |のため〜」云々はあまり気にしなくていいんじゃないかと思ったんですが,そう
>> |でもないでしょうか.
>>
>> memalignで直接ページが得られた方が、PROの手法よりビットマップ
>> テーブルを得るためのメモリアクセスが1段減って高速のはずです。
>> ビットマップテーブル取得はオブジェクトごとに発生しますから効
>> いてくるはずです。
>
>  そうですね.定量的な比較がもしあると説得力が増すと思いました.
>

実装して比較してもよいですが、実装者の感覚としては調べるまでもな
いような気も…。

>> |# あと,REE との性能比較があると興味深いと思ったけど,
>> |# いろいろ難しいかな.
>>
>> うーん、1.8と1.9の差の方が大きすぎて意味のある性能比較はムリ
>> でしょう。メモリ消費量比較くらいなら有意義な比較ができるかな。
>
>  はい,難しいと思います.が,何らかの指標があると,マーケティングには良
> さそうです.

REEとメモリ消費量を比較したのがあったほうがいいかもしれませんね。
passengerは面倒そうなので、まずはskkzipcodeを動かしてみます。

REEとのGCの速度面の比較はけっこう大変な上にそれほど意味がなさそうなので、
気が進みません…。

>  パッチをちらっと見ただけでの将来的な要望ですが,この辺は gc.c の中で綺
> 麗に API(というかマクロ)で切り離せるところだと思うので,うまいこと整理
> できるといいんでないかと思います(以前,RubyConf2011 でも喋った話ですが).

そうですね。それはいろんなGCを選択したいなぁ、という時にやらないといけ
ないことだと思っています。
また、ささださんがおっしゃってる「うまいこと整理」のイメージがあまり湧
いてないので、どういうものか例を上げてくれると想像しやすいです。

> --
> // SASADA Koichi at atdot dot net
>

-- 
Narihiro Nakamura (nari)