本帖最后由 taroxd 于 2014-5-24 19:01 编辑
fux2 发表于 2014-5-24 18:17
hash的效率要高一些,在va环境下没研究,但是xp环境下效率 table>hash>array
在大量循环处理这些数据的时候 ...
虽然我想说的是默认脚本用hash而不是直接用整数,不过说到这个,我就来无聊测测效率了
Ruby2.0 环境下,array效率远高于hash
我的测试结果:
require 'Benchmark' big = 10000000 array = (0...big).to_a hash = {} big.times {|i| hash[i] = i } Benchmark.bmbm do |x| x.report('array') {big.times{|i| array[i]}} x.report('hash') {big.times{|i| hash[i]}} end
require 'Benchmark'
big = 10000000
array = (0...big).to_a
hash = {}
big.times {|i| hash[i] = i }
Benchmark.bmbm do |x|
x.report('array') {big.times{|i| array[i]}}
x.report('hash') {big.times{|i| hash[i]}}
end
输出:- Rehearsal -----------------------------------------
- array 0.624000 0.000000 0.624000 ( 0.636037)
- hash 4.649000 0.000000 4.649000 ( 4.663266)
- -------------------------------- total: 5.273000sec
- user system total real
- array 0.640000 0.000000 0.640000 ( 0.641037)
- hash 4.727000 0.000000 4.727000 ( 4.730271)
复制代码 吐槽:为什么论坛代码里array是高亮的啊 |