It feels to me like array.concat seems slower than the equivalent (I think) variation using array.push: >> a = [1,2,3,4,5]; b=[]; puts Benchmark.measure{ (1..100000).each{ b.push(*a)}} 0.090000 0.000000 0.090000 ( 0.090436) >> a = [1,2,3,4,5]; b=[]; puts Benchmark.measure{ (1..100000).each{ b.concat(a)}} 0.290000 0.000000 0.290000 ( 0.296501) (using ruby 1.8.4) This surprised me somewhat, because earlier (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/7521) it was suggested that concat is a fast way of appending to arrays. Is there something I'm missing, or does it seem I should be using push(*a) in places where I had been using concat(a)?