Ruby ハッシュの長さを取得する

Rubyで、lengthを使用して、ハッシュの長さを取得するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
length使い方
lengthを使用すれば、ハッシュの長さを取得することが可能です。
1 |
p hash.length |
以下は、ハッシュの長さを取得するサンプルコードとなります。
1 2 3 4 5 6 7 8 9 |
h = {'key1' => 1, 'key2' => 2} p h.length # 2 h = {'key1' => 1, 'key2' => 2, 'key3' => 3} p h.length # 3 |
sizeを使用しても、結果は同じです。
1 2 3 4 5 6 7 8 9 |
h = {'key1' => 1, 'key2' => 2} p h.size # 2 h = {'key1' => 1, 'key2' => 2, 'key3' => 3} p h.size # 3 |
countも使用できますが、パフォーマンスは一番悪くなります。
1 2 3 4 5 6 7 8 9 |
h = {'key1' => 1, 'key2' => 2} p h.count # 2 h = {'key1' => 1, 'key2' => 2, 'key3' => 3} p h.count # 3 |
lengthとsizeとcountを1000万回計測した結果
1 2 3 4 |
user system total real #length 0.453000 0.000000 0.453000 ( 0.460591) #size 0.547000 0.000000 0.547000 ( 0.551066) #count 3.437000 0.000000 3.437000 ( 3.435665) |
ソースコード
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 |
require 'benchmark' # 繰り返し回数 i = 10000000 # ハッシュを用意 h = {'key1' => 1, 'key2' => 2, 'key3' => 3} # 10は、reportラベルに使用する桁数 Benchmark.bm 10 do |r| r.report '#length' do i.times do h.length end end r.report '#size' do i.times do h.size end end r.report '#count' do i.times do h.count end end end |
-
前の記事
「reCAPTCHA」認証を利用して迷惑メールを防ぐ 2021.03.20
-
次の記事
UVdesk エラー「The stream or file “/var/log/dev.log” could not be opened: failed to open stream: Permission denied」が発生 2021.03.21
コメントを書く