まつもと ゆきひろです

In message "[ruby-dev:13366] StringBuffer"
    on 01/05/28, Shugo Maeda <shugo / ruby-lang.org> writes:

|たぶん、rubyのArray#joinの実装を改善するのが一番まっとうなんじゃ
|ないかと思います(^_^;

ChangeLogに書くのを忘れてたみたいですが、1.7では、全部が文字
列であるケースに限っては先に長さぶんの文字列を割り当てます。
わからない場合はしょうがないんで適当な長さを割り当ててます。

|現状のrubyの実装では、色々なところで、
|
|str = ""
|何らかのループ do
|  str.concat(s)
|end
|
|のようなコード(のC版)が使われているのですが、これだと毎回
|realloc()が呼ばれることになります。
|
|Rubyレベルで見せるかどうかは別として、JavaのStringBufferのような
|クラスを用意して、それを利用するようにした方がよいのではないでしょ
|うか。

直接聞いた方が明らかに速いのですが、JavaのStringBufferはどの
ようにして高速化を達成しているのですか?

                                まつもと ゆきひろ /:|)