概要
Rubyで、大量の文字列とシンボルを比較する際にはシンボルの方が早い。
シンボルの特徴
####Ruby内部で文字列でなく整数として扱われるので、早い。
比較検索の際に、有利なのでハッシュのキー、メソッドへの引数に使える。
####イミュータブルなオブジェクトである。
破壊的変更を意図したくない場合に使える。
計算
require 'benchmark'
Benchmark.bm 10 do |r|
fruits = ['apple','orange','lemon']
r.report 'string' do
target = 'orange'
fruits.each {|fruit| fruit == target}
end
r.report 'symbol' do
target = :orange
fruits.each {|fruit| fruit == target}
end
end
##結果
user system total real
string 0.000014 0.000014 0.000028 ( 0.000012)
symbol 0.000006 0.000001 0.000007 ( 0.000006)