Ruby Struct - 性能开销?

时间:2010-07-07 12:40:18

标签: ruby performance struct

在Ruby中使用Structs(与Arrays,Hashes等相比)时,是否存在任何性能开销?

1 个答案:

答案 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值足够大,结构略慢,但我无法想象这会引起注意或在实践中出现问题。