From: WATANABE Tetsuya Date: 1999-03-12T11:50:37+09:00 Subject: [ruby-dev:6259] str += 渡辺哲也です。 文字列を += すると、かなりメモリを使います。 以前も話題にでていたような気がしますが... GC に任せてしまうと、100K のファイルでもかな り大変です。 ------------------------------ f = '' while j = gets f += j end exit ------------------------------ String クラスの場合は、特に扱う大きさがふく れてくるので「a += b」すると「a」のもともと のオブジェクトがメモリに残ってしまうのが、か なり影響を受けます。 これって何とかなりませんか? (と、自分で実験 しようとしたんですが eval.c を追いかけきれな くて...) もともとの「a」を free(3) してしま うなど... 上記のような変数にまとめていれたい場合は、い ろいろな方法はあるんですが、ちょっと気になっ たので(引かかりやすそうだし)。 # 300K 位のファイルで swap 使い果たしてしま # いました。 お答えは? Linux World Conference 終わってか らでもいいです。 でも、String クラスだけ別扱いは... -- WATANABE Tetsuya e-mail: Tetsuya_WATANABE@hp.com tetsu@jpn.hp.com