文字列結合の場合は圧倒的に+=が遅いというのは有名 では配列結合は?
配列結合の場合
require 'benchmark' Benchmark.bm do |x| NUM = 100000 item = ["hoge", "piyo"] x.report(:add) do array = [] NUM.times { array.push(item) } end x.report(:concat) do array = [] NUM.times { array.concat(item) } end x.report(:shift) do array = [] NUM.times { array << item } end end
user system total real add 0.000000 0.000000 0.000000 ( 0.008901) concat 0.010000 0.000000 0.010000 ( 0.011899) shift 0.010000 0.000000 0.010000 ( 0.006938)
意外にもconcatが最下位 <<が一位に輝いた