Ruby 配列から指定した数だけ配列を取得する処理で「take」と「first」と「ドット」のパフォーマンスを計測する

Rubyで、benchmarkを使用して、配列から指定した数だけ配列を取得する処理で「take」と「first」と「ドット」のパフォーマンスを計測するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows11 pro 64bit
- ruby 3.1.2p20
パフォーマンス計測
benchmarkを使用して、「take」と「first」と「ドット」を使用して、配列から指定した数だけ配列を取得するコードを10万回実行したパフォーマンスを計測するサンプルコードとなります。
require "benchmark"
# 繰り返し回数 100万回
i = 1_000_000
arr = [1, 2, 3, 4, 5]
# 10は、reportラベルに使用する桁数
Benchmark.bm 10 do |r|
r.report "#take" do
i.times do
arr.take(2)
end
end
r.report "#first" do
i.times do
arr.first(2)
end
end
r.report "#..." do
i.times do
arr[...2]
end
end
r.report "#.." do
i.times do
arr[..1]
end
end
end
実行結果
<1回目>
user system total real
#take 0.078000 0.000000 0.078000 ( 0.093229)
#first 0.094000 0.000000 0.094000 ( 0.091829)
#... 0.172000 0.000000 0.172000 ( 0.160214)
#.. 0.125000 0.000000 0.125000 ( 0.129416)
<2回目>
user system total real
#take 0.094000 0.000000 0.094000 ( 0.095401)
#first 0.109000 0.000000 0.109000 ( 0.133020)
#... 0.094000 0.000000 0.094000 ( 0.111415)
#.. 0.109000 0.000000 0.109000 ( 0.112128)
<3回目>
user system total real
#take 0.125000 0.000000 0.125000 ( 0.133818)
#first 0.109000 0.000000 0.109000 ( 0.099203)
#... 0.110000 0.000000 0.110000 ( 0.119050)
#.. 0.125000 0.000000 0.125000 ( 0.117001)
「take」が一番良さそうです。
-
前の記事
Oracle Database 累乗した結果を取得する 2022.10.14
-
次の記事
firefox メニューの表示・非表示を切り替えるショートカットキー 2022.10.14
コメントを書く