或るプログラマの開発日記

日々の勉強したことの備忘録なんかに使っていきます

Rubyでベンチマークを取る

Rubyについて調べてると、そこかしこのサイトでRubyプログラムの処理速度を出しているところがあったんですが、どうすれば出せるかを理解してなかったので、ちゃんと調べた結果をメモしておきます。

Rubyベンチマーク測定

なんとRubyでは、標準で処理速度測定用のモジュールが用意されていました。
うーん、今更ながらRuby便利すぎる。

プログラム

require 'benchmark'

Benchmark.bm 10 do |x|
  x.report "concat1" do
    str1 = ""
    100000.times do
      str1 += "str"
    end
  end
  x.report "concat2" do
    str2 = ""
    100000.times do
      str2 << "str"
    end
  end
end

実行結果

                 user     system      total        real
concat1      2.184000   3.510000   5.694000 (  5.697419)
concat2      0.000000   0.015000   0.015000 (  0.018270)

とりあえず、サンプルがてら文字列連結を+演算子で処理するバージョンと、<<演算子で処理するバージョンを比較。
その結果、まあやはりというか、処理速度という点では破壊的バージョンの方が優れているという事になりましたとさ。

参考URL

こちらの記事が非常に参考になりました!

qiita.com