From: Shugo Maeda Date: 2001-05-28T12:36:28+09:00 Subject: [ruby-list:29835] StringBuffer 前田です。 ruby-devにふります。 At Sun, 13 May 2001 19:04:17 +0900, Tanaka Akira wrote: > 最近、Array 中にある大量の String を join する機会があったのですが、や > けに遅いことに気がつきました。 (snip) > という関数を作って線形に押えることには成功したのですが、なにかもっとう > まい方法はないものでしょうか? たぶん、rubyのArray#joinの実装を改善するのが一番まっとうなんじゃ ないかと思います(^_^; 現状のrubyの実装では、色々なところで、 str = "" 何らかのループ do str.concat(s) end のようなコード(のC版)が使われているのですが、これだと毎回 realloc()が呼ばれることになります。 Rubyレベルで見せるかどうかは別として、JavaのStringBufferのような クラスを用意して、それを利用するようにした方がよいのではないでしょ うか。 -- 前田 修吾