ワナベです。

2009/02/04 13:34 Tanaka Akira <akr / fsij.org>:
> In article <8964790c0902032007n708f1587je29b391281bf5932 / mail.gmail.com>,
>  wanabe <s.wanabe / gmail.com> writes:
>
>> ruby-1.9では配列内の重複要素の検出のために
>> 内部でHashオブジェクトが生成されますが、
>> これをスレッドローカルに保存して使いまわすことで
>> オブジェクト生成とGCの回数を減らすパッチを書きました。
>
> Hash の操作をすると hash や eql? メソッドを呼びますが、その
> 中でまた重複要素の検出が必要になることはないのでしょうか。

ご指摘ありがとうございます。
確かにそういったケースでは問題がありました。失礼しました。

$ ./ruby -e 'class Foo;def hash;[]|[];return super;end;end;a=[Foo.new,
Foo.new];p a,a|[]'
[#<Foo:0xbfda98>, #<Foo:0xbfda80>]
[]

-- 
ワナベ