Ruby 文字列をインクリメントする「next」と「succ」のパフォーマンスを計測する

  • 作成日 2021.09.17
  • 更新日 2022.08.03
  • Ruby
Ruby 文字列をインクリメントする「next」と「succ」のパフォーマンスを計測する

Rubyで、benchmarkを使用して、文字列をインクリメントする「next」と「succ」のパフォーマンスを計測するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

パフォーマンス計測

benchmarkを使用して、文字列「”1″」をインクリメントする「next」と「succ」のパフォーマンスを計測するサンプルコードとなります。

require 'benchmark'

# 繰り返し回数 100万回
i = 1000000

# 10は、reportラベルに使用する桁数
Benchmark.bm 10 do |r|
  r.report '#next' do
    i.times do
      "1".next 
    end
  end

  r.report '#succ' do
    i.times do
      "1".succ
    end
  end

end

実行結果

<1回目>
                 user     system      total        real
#next        0.156000   0.000000   0.156000 (  0.155877)
#succ        0.141000   0.000000   0.141000 (  0.144279)

<2回目>
                 user     system      total        real
#next        0.157000   0.000000   0.157000 (  0.153338)
#succ        0.140000   0.000000   0.140000 (  0.149284)

<3回目>
                 user     system      total        real
#next        0.156000   0.000000   0.156000 (  0.155613)
#succ        0.141000   0.000000   0.141000 (  0.152313)

succのが少しだけパフォーマンスは良さそうです。