Hi!

On Mon, Nov 19, 2001 at 11:18:33PM +0900, David Alan Black wrote:
> Hello --
> Without having done benchmarks, I like:
> 
>   len = 1000000
>   a = Array.new(len, 1)
>   b = Array.new(len, 2)
>   c = (0...len).map {|i| a[i] + b[i]}

Benchmarks show very bad results:

$ cat p1.rb
#!/usr/bin/env ruby

len = 1000000
a = Array.new(len, 1)
b = Array.new(len, 1)
c = (0...len).map {|i| a[i] + b[i]}

$ time p1.rb
18.010u 0.050s 0:18.11 99.7%    0+0k 0+0io 345pf+0w

$ cat p2.rb
#!/usr/bin/env ruby

len = 1000000
a = Array.new(len, 1)
b = Array.new(len, 1)
c = Array.new(len)

(1...len).each {|i| c[i] = a[i] + b[i]}

$ time p2.rb
3.280u 0.060s 0:03.34 100.0%    0+0k 0+0io 343pf+0w

That's almost a factor 6.

I assume, that your method spend most of the time in building and extending the
resulting array.

Thanks,
Martin.

-- 
The early bird catches the worm. If you want something else for       
breakfast, get up later.