在Ruby中使用Structs(与Arrays,Hashes等相比)时,是否存在任何性能开销?
答案 0 :(得分:2)
我尝试运行以下几次(遵循Jörg的评论,这已经更新为使用固定变量代替值而不是创建大量字符串):
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
值足够大,结构略慢,但我无法想象这会引起注意或在实践中出现问题。