我对 Ruby 数组进行了小型性能测试concat()
vs +
操作和concat()
太快了。
然而我不清楚为什么concat()
有那么快吗?
有人可以帮忙吗?
这是我使用的代码:
t = Time.now
ar = []
for i in 1..10000
ar = ar + [4,5]
end
puts "Time for + " + (Time.now - t).to_s
t = Time.now
ar = []
for i in 1..10000
ar.concat([4,5])
end
puts "Time for concat " + (Time.now - t).to_s
根据Ruby 文档 http://www.ruby-doc.org/core-2.1.0/Array.html,区别在于:
Array#+ :
连接 — 返回通过将两个数组连接在一起生成第三个数组而构建的新数组。
数组#concat :
Array#concat :将 other_ary 的元素附加到 self。
So the +
运算符每次被调用时都会创建一个新数组(这是昂贵的),而concat
仅附加新元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)