2
在Ruby中使用Structs(與Arrays,Hashes等相比)時,您會遇到什麼性能開銷?紅寶石結構 - 性能開銷?
在Ruby中使用Structs(與Arrays,Hashes等相比)時,您會遇到什麼性能開銷?紅寶石結構 - 性能開銷?
我試圖運行下面的幾次(以下約克的評論這已被更新爲使用一個固定的變量的值,而不是創建大量字符串):
require 'benchmark'
Example = Struct.new("Example", :value)
struct = Example.new
hash = {}
value = "The value"
n = 5000000
Benchmark.bm do |m|
# test assignment and access for Hash and Struct
m.report { n.times do; hash[:value] = value; end }
m.report { n.times do; struct.value = value; end }
end
更新
它似乎有足夠大的值n
Struct稍微慢一點,但我無法想象這在實踐中會引人注意或是一個問題。
如果你的基準是由創建(和垃圾收集!)200萬字符串的開銷所支配的,我不會感到驚訝。 – 2010-07-07 13:34:17
好點。如果我們使用單個字符串作爲值而不是每次創建新字符串,您認爲這會是更好的方法嗎? (我將編輯答案) – mikej 2010-07-07 14:14:11
不,我認爲如果OP自己簡單地完成了這項工作,他*真實*環境中的* actual *代碼在*真實*負載下的實際* Ruby實現上進行基準測試會更好。因爲其他一切都只是假的。 – 2010-07-07 19:33:50