a = [] b = [] c = [] d = [] x = [0] * 100000 20.times {|i1| t1 = Time.now for i2 in x end t2 = Time.now a.push(t2 - t1) } 20.times {|i1| t1 = Time.now x.each do |i2| end t2 = Time.now b.push(t2 - t1) } 20.times {|i1| t1 = Time.now x.each {|i2| } t2 = Time.now c.push(t2 - t1) } d.push(a.inject(0) {|r,i| r += i} / a.size) d.push(b.inject(0) {|r,i| r += i} / b.size) d.push(c.inject(0) {|r,i| r += i} / c.size) p d