From: Narihiro Nakamura Date: 2010-11-13T15:49:55+09:00 Subject: [ruby-dev:42570] Re: Proposal: thread local freelist nariです。 2010年11月3日22:50 SASADA Koichi : >  ささだです。 (snip) > 現状での利点は、新しい RVALUE の確保がスレッドローカルになって、ちょっ > とうれしーかなー、という感じです。オブジェクトのメモリ上のローカリティが > 向上するかもしれない、それで、CPU のキャッシュの効率が上がるかもしれな > いってくらいで、気分の問題です。newobj は、間接参照のコストが 1 つ増える > くらいだから、あまり問題無いんじゃないかと思っています。 何度かGCが起きると結局バラバラな場所にアロケートされてしまう(slotが Thread専用ではないため)ような気がして、それだとローカリティの恩恵はそ れほど無いような気がしたのですが、実際はどうなんでしょうか。 ちょっと興味があります。やらないよりはマシな程度なのかなと想像しました。 > 本質的な利点は、この辺に対して並列にゴニョゴニョしよう、というときに、 > freelist みたいなグローバルな構造があると非常にやりづらく、これを解消す > るためです。昨日、VALUE_CACHE という部分を消しましたが、これは元々私が > 作っていた 並列 Thread Ruby で、freelist へのロックの競合を排除するため > に設けましたが、本当は今回提案したような仕組みを作りたかったのです(が、 > 面倒だったので、とりあえず VALUE_CACHE でお茶を濁した)。 上記の利点から入れてもいいのではないかと私は思います。 > とりあえず作った patch を添付しますが、なんか test-all で嫌な感じのエ > ラーが出ているので、多分バグ入りです。lazy sweep にも対応出来てるんじゃ > ないかと思います。多分。 読みました。 コメントアウトの所は削除してしまうのがいいんですかね。 あとバグが取れてるといいなと思いました。 -- Narihiro Nakamura (nari)