我决定看看迭代一个哈希数组需要多长时间。下面是代码:
pairs = [{name: "firstname", value: "string"},{name: "lastname", value: "string"},{name: "country", value: "string"},{name: "city", value: "string"},{name: "state", value: "string"},{name: "company", value: "string"},{name: "year", value: "string"},{name: "political_affiliation", value: "string"},{name: "social_security_number", value: "string"}] * 1000
blank = {}
start = Time.now
pairs.each do |pair|
blank[pair[:name]] = pair[:value]
end
p Time.now - start
时间是通过从循环之前的当前时间减去循环之后的当前时间来计算的。
根据代码中的数学计算,这是 YARV 2.1.1 中计算所花费的时间:
0.001962017
以下是 Rubinius 2.2.6 所用的时间:
0.022598
和 jRuby 1.7.12
0.022317
据说 Rubinius 和 jRuby 比 YARV 具有性能优势。为什么他们需要几乎 12 倍的时间来执行相同的基本操作?这是正常的还是我配置不正确?