Ruby 0~9までの乱数を発生させる「rand」と「random.rand」のパフォーマンスを計測する

Rubyで、benchmarkを使用して、0~9までの乱数を発生させる「rand」と「random.rand」のパフォーマンスを計測するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
パフォーマンス計測
benchmarkを使用して、「rand」と「範囲オブジェクトを使ったrand」「random.rand」を使用して、0~9までの乱数を発生させるコードを1000万回実行したパフォーマンスを計測するサンプルコードとなります。
require 'benchmark'
# 繰り返し回数 1000万回
i = 10000000
# オブジェクトを事前に生成
random = Random.new
# 10は、reportラベルに使用する桁数
Benchmark.bm 10 do |r|
r.report '#rand(10)' do
i.times do
rand(10)
end
end
r.report '#rand(0..9)' do
i.times do
rand(0..9)
end
end
r.report '#random.rand(0..9)' do
i.times do
random.rand(0..9)
end
end
end
実行結果
<1回目>
user system total real
#rand(10) 1.359000 0.000000 1.359000 ( 1.357292)
#rand(0..9) 1.750000 0.000000 1.750000 ( 1.992362)
#random.rand(0..9) 2.391000 0.015000 2.406000 ( 2.505658)
<2回目>
user system total real
#rand(10) 1.375000 0.000000 1.375000 ( 1.405977)
#rand(0..9) 1.500000 0.000000 1.500000 ( 1.493190)
#random.rand(0..9) 2.375000 0.016000 2.391000 ( 2.555527)
<3回目>
user system total real
#rand(10) 1.703000 0.000000 1.703000 ( 1.978642)
#rand(0..9) 1.594000 0.000000 1.594000 ( 1.625010)
#random.rand(0..9) 2.110000 0.000000 2.110000 ( 2.113010)
「rand(10)」が、一番パフォーマンスは良さそうです。
-
前の記事
javascript shiftKeyプロパティでshiftキーが押されているかを判定する 2021.01.11
-
次の記事
javascript sessionStorageの簡単な使い方 2021.01.11
コメントを書く