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万回実行したパフォーマンスを計測するサンプルコードとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<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
コメントを書く