ruby ベンチマーク string1
rubyでは文字列の連結でかなり速度差があるということを聞いたので、本当かどうかを確かめるために、ベンチマークを取ってみました。
先に結果から
user system total real string + string 2.109000 1.141000 3.250000 ( 3.258173) concat 0.016000 0.000000 0.016000 ( 0.028001) string << string 0.031000 0.000000 0.031000 ( 0.026002)
単純に計算すると、なんと100倍以上。本当かな。
でも、ちょっとリファクタリングするときには気をつけないと行けないかも。
環境は
OS 名: Microsoft Windows 8.1 Pro プロセッサ: Core i5-4570 CPU 3.2GHz 物理メモリの合計: 8.0 GB ruby 2.0.0p481 (2014-05-08) [x64-mingw32]
ソース
require 'benchmark' loop_count = 100000 Benchmark.bm(30) do |x| x.report('string + string'){ a = 'a' loop_count.times{|i| a += 'a' } } x.report('concat'){ a = 'a' loop_count.times{|i| a.concat('a') } } x.report('string << string'){ a = 'a' loop_count.times{|i| a <<= 'a' } } end