我初始化了一個散列,如this question,並運行了一些基準測試。迭代散列中密鑰的最快方法
Benchmark.measure { a = h.keys }
#=> 0.010000 0.000000 0.010000 ( 0.019832)
Benchmark.measure { a.each { |k| } }
#=> 0.060000 0.000000 0.060000 ( 0.057262)
Benchmark.measure { h.each { |k, v| } }
#=> 0.320000 0.000000 0.320000 ( 0.319768)
Benchmark.measure { h.each_key { |k| } }
#=> 0.310000 0.000000 0.310000 ( 0.312656)
Benchmark.measure { h.each_pair { |k, v| } }
#=> 0.330000 0.000000 0.330000 ( 0.331452)
我還以爲轉動散列成鍵的排列會比較慢,但是它不是,且each_key
有類似的性能each
。爲什麼是這樣?什麼是最好的方法?
什麼是最好的方法?不用擔心,因爲如果你的代碼塊中有實際的代碼,它不會成爲你的瓶頸。 – 2014-10-08 01:01:55
請注意'a.each {| k | }'做了與其餘部分截然不同的事情:它不返回鍵,而是鍵值對。 – Amadan 2014-10-08 01:08:47
我的回答是你在找什麼? – daremkd 2014-10-13 23:06:26