From: Minero Aoki Date: 2000-10-22T13:38:04+09:00 Subject: [ruby-list:25569] Re: Ruby で遅い処理は? あおきです。 In mail "[ruby-list:25567] Ruby で遅い処理は?" Yasuki wrote: > Yasukiです. > 最近,Rubyでシミュレーションプログラムを作ったのですが,遅い! > 一晩かかっても終わっていませんでした. > まぁ,シミュレーションも要素の数を減らせば,実用範囲内なんですが. > 拡張ライブラリを使っているので,rb2c も使えませんし. > > そこで,Rubyにおいて,特別に遅い処理や構文はありませんか? うーん、とりあえずソースが見られないと、「モノによる」という答えしか 返せないと思いますが、とりあえず常道としては 1 あまりオブジェクトを捨てないアプリの場合、GC が無駄におきてる 2 str += s や arr += a など再生成系(非破壊)メソッドの多用 あたりが考えられます。 1 だとすると、普段は GC を止めておいて時々 (特に、オブジェクトが 捨てられる場所がわかるならその後で) 明示的に GC してやることで 劇的に速くなります。2 だとすると、str << s や arr.concat a にして やれば、これまた劇的に速くなります。 ------------------------------------------------------------------- あおきみねろう