n = 5000000
Benchmark.bm(7) do |x|
x.report("upto :") { for i in 1..n; 0.upto(( 10 )) ; end }
x.report("range :") { for i in 1..n; 0..10 ; end }
end
結果:
user system total real
upto : 1.116440 0.068953 1.185393 ( 1.187705)
range : 0.156921 0.000000 0.156921 ( 0.156759)
為什么 upto() 與手動范圍相比需要花費這么多時間?
uj5u.com熱心網友回復:
這個基準實際上現在將橙子與蘋果進行比較:在引擎蓋下upto 執行實際迭代0..10,while是一個范圍文字,每次迭代只創建一個小物件(沒有記憶體分配)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534548.html
標籤:红宝石
下一篇:提取哈希的JSON名稱
