Benchmark-IPSはRuby標準添付のBenchmarkライブラリを便利に拡張してくれるGemです。
使い方
導入
$ gem install benchmark-ips
用例
普通のBenchmarkならbmメソッドを呼び出すところ、
ipsメソッドを呼び出すあたりが違います。
また、IPSならcompare!という比較用メソッドが用意されています。
require 'benchmark/ips' def slow %w(a b c).shuffle.first end def fast %w(a b c).sample end Benchmark.ips do |x| x.report( "fast" ) { fast } x.report( "slow" ) { slow } x.compare! end
結果はこの通り。
$ ruby benchmarkips.rb Calculating ------------------------------------- fast 93.804k i/100ms slow 135.139k i/100ms ------------------------------------------------- fast 2.556M (± 6.2%) i/s - 12.757M slow 9.298M (± 8.4%) i/s - 46.218M Comparison: slow: 9297622.7 i/s fast: 2556164.5 i/s - 3.64x slower RyotaShirono-no-MacBook-Pro:ruby shuzo_kino$ vim benchmarkips.rb RyotaShirono-no-MacBook-Pro:ruby shuzo_kino$ ruby benchmarkips.rb Calculating ------------------------------------- fast 91.780k i/100ms slow 81.327k i/100ms ------------------------------------------------- fast 2.280M (± 5.2%) i/s - 11.381M slow 1.845M (± 5.6%) i/s - 9.271M Comparison: fast: 2280092.2 i/s slow: 1845327.7 i/s - 1.24x slower