Ruby delete_ifとinjectのパフォーマンスを計測する
Rubyで、benchmarkを使用して、ハッシュより指定した条件でキーを削除できるdelete_ifとinjectのパフォーマンスを計測するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
パフォーマンス計測
benchmarkを使用して、delete_ifとinjectのパフォーマンスを計測するサンプルコードとなります。
require 'benchmark'
# 繰り返し回数
i = 10000000
# 10は、reportラベルに使用する桁数
Benchmark.bm 10 do |r|
r.report '#delete_if' do
i.times do
h = {'key1' => 1, 'key2' => 2, 'key3' => 3}
h.delete_if{|k, v| k == "key1"}
end
end
r.report '#inject' do
i.times do
h = {'key1' => 1, 'key2' => 2, 'key3' => 3}
h.reject!{|k, v| k == 'key1'}
end
end
end
実行結果
<1回目>
user system total real
#delete_if 3.797000 0.000000 3.797000 ( 3.816592)
#inject 4.047000 0.000000 4.047000 ( 4.093661)
<2回目>
user system total real
#delete_if 4.062000 0.000000 4.062000 ( 4.122050)
#inject 4.125000 0.000000 4.125000 ( 4.137152)
<3回目>
user system total real
#delete_if 3.969000 0.000000 3.969000 ( 4.006842)
#inject 3.812000 0.000000 3.812000 ( 3.802413)
大差がない結果となりました。
-
前の記事
C# 配列やリストの値を結合する 2021.08.31
-
次の記事
javascript 配列データ内からbigintのみを抽出する 2021.09.01
コメントを書く