動かざることバグの如し

3分経てば忘れそうなことをメモします

Rubyで一番早い配列結合は

文字列結合の場合は圧倒的に+=が遅いというのは有名 では配列結合は?

配列結合の場合

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が最下位 <<が一位に輝いた

広告を非表示にする