Ruby 配列の総和を求める場合のパフォーマンスを計測する
Rubyで、benchmarkを使用して、配列の総和を求める場合のパフォーマンスを計測するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
パフォーマンス計測
benchmarkを使用して、配列の総和を求める場合のパフォーマンスを計測するサンプルコードとなります。
require 'benchmark'
# 繰り返し回数
i = 1000000
# 配列を用意
arr = (1..5).to_a
# 10は、reportラベルに使用する桁数
Benchmark.bm 10 do |r|
r.report '#join' do
i.times do
eval arr.join("+")
end
end
r.report '#inject' do
i.times do
arr.inject(&:+)
end
end
r.report '#each' do
i.times do
sum = 0
(1..10).each do |i|
sum += i
end
end
end
r.report '#block' do
i.times do
sum = 0
(1..10).each{|x| sum += x}
end
end
r.report '#sum' do
i.times do
arr.sum
end
end
end
実行結果
user system total real
#join 10.562000 0.031000 10.593000 ( 12.877085)
#inject 1.047000 0.031000 1.078000 ( 1.653925)
#each 0.891000 0.000000 0.891000 ( 1.216039)
#block 0.578000 0.000000 0.578000 ( 0.689920)
#sum 0.078000 0.000000 0.078000 ( 0.106200)
joinが圧倒的に遅く、sumが圧倒的に速い結果となりました。
-
前の記事
PostgreSQL 日付の重複をチェックする 2021.11.01
-
次の記事
Ubuntu21.10 mysqlをインストールする 2021.11.01
コメントを書く