[#39863] forループの速度 — Masahiro Sato <msato@...>

15 messages 2004/07/20

[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>

大谷と申します。

31 messages 2004/07/20
[#39886] Re: イテレータとfor文 — Tietew <tietew-ml-ruby-list@...> 2004/07/21

[ruby-list:39877] Re: forループの速度

From: Masahiro Sato <msato@...>
Date: 2004-07-21 01:07:15 UTC
List: ruby-list #39877
佐藤です。

> 優れたNArrayを使用するのが手っ取り早くて早いのでは、ないかと
> おもいますが。単純な演算では、NArrayへの変換のオーバーヘッドが
> あるかもしれませんが?
> (NArrayを使わせていただいていますが、厳密に速度等は、
> 調べていません。)

#!/usr/bin/env ruby

a = Array.new(100000)

i = 0
j = 0

while i < 1000
  j = 0
  while j < 40000
    1 + 1;
    j += 1
  end
  i += 1
end

[msato] time ./a.rb
a.rb  40.71s user 0.16s system 98% cpu 41.395 total

ループ内に配列があるときとほぼ同様の速度です。

これの実行結果から、ボトルネックは配列へのアクセスはではなく、
そもそものwhileやforのループのようです。

これの解決はやはりC言語をつかう以外思いついていません。






In This Thread