b1 = Time.now
puts (1..100000).inject(0) { |x, y| x + y }
a1 = Time.now
puts "Time for inject: #{a1 - b1}"
b2 = Time.now
sum = 0
(1..100000).each do |value|
sum += value
end
puts sum
a2 = Time.now
puts "Time for each: #{a2 - b2}"
上面的Ruby代碼比較了總結整數的兩種方式。令我驚訝的是,更優雅的注入或減少方法是優於其他。爲什麼會這樣?爲什麼人們打擾使用低效注入或減少?僅僅因爲它很優雅? PS:感謝所有鼓舞人心的答案。我的意圖是詢問幕後發生的事情是什麼導致了這些差異。紅寶石地圖/降低功能必要的效率?
如果你在你做的每件事情中都計算納秒,你就沒有時間去做任何有效的事情。另請參見「過早優化」(不要使用刪節版本 - 正如完整的引用正確地指出的那樣,在某些情況下,像這樣的事情確實很重要)。 – delnan
謝謝。非常周到的意見! –