Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Benchmarkクラス

6月5日Rubyの拡張ライブラリについて学習したのですが,ベンチマークをとるスクリプトPerlになっていたので,Rubyで書いてみました。3ヶ月研修の報告書に載せるため用です。

20000番目の素数を求めるためにかかった処理時間を計測しています。

require 'benchmark'

Benchmark.bm(15) do |x|
  x.report("Prime.rb") {system('ruby Prime.rb 20000 > /dev/null')}
  x.report("Prime_ext.rb") {system('(cd swig;ruby Prime_ext.rb 20000 > /dev/null)')}
end

実行結果

Prime.rbは,Rubyだけで書かれていて,Prime_ext.rbは,拡張ライブラリを用いています。

mmasa@debian:~/work/ruby/ext/Prime$ ruby Bench.rb
                     user     system      total        real
Prime.rb         0.000000   0.000000   8.210000 (  8.325987)
Prime_ext.rb     0.000000   0.000000   0.050000 (  0.051160)