rubyの実行速度
なんかruby1.9は速くなったといわれてるんでザウルスで試してみました。使用したのはruby1.8.6-p111とruby1.9.0です。
使用したスクリプトは以下です。
a = 0 1000.times do (1..10000).each do |i| a += 1 end end puts a
結果は
$time ruby test.rb 10000000 real 1m25.387s user 1m10.640s sys 0m13.430s $time ruby19 test.rb 10000000 real 0m48.414s user 0m29.690s sys 0m17.980s
さすが1.9はやっ!
ところが、こちらのスクリプトだと
a = 0 100.times do (1..10000).each do |i| a += 1 if /a.*a/ =~ "abcdefga" end end puts a
結果は
$time ruby test.rb 1000000 real 1m15.758s user 1m9.040s sys 0m5.820s $time ruby19 test.rb 1000000 real 1m28.239s user 1m19.810s sys 0m7.340s
遅くなってるしorz
正規表現を使うと遅くなるのでしょうかね。