Benchmark
ваш друг:
require 'benchmark'
str = 'hello'
num = 1000000
Benchmark.bmbm do |x|
x.report('individual keys:') do
regexes = [/hello/ => 2, /foo/ => 2, /bar/ => 3]
num.times do
regexes.each {|key, val| str =~ key}
end
end
x.report('combined keys: ') do
regexes = [/(hello|foo)/ => 2, /bar/ => 3]
num.times do
regexes.each {|key, val| str =~ key}
end
end
end
Результат:
Rehearsal ----------------------------------------------------
individual keys: 1.600000 0.010000 1.610000 ( 1.780246)
combined keys: 1.610000 0.010000 1.620000 ( 1.761067)
------------------------------------------- total: 3.230000sec
user system total real
individual keys: 1.570000 0.000000 1.570000 ( 1.589879)
combined keys: 1.590000 0.010000 1.600000 ( 1.678724)
Как видите, в этом случае нет большой разницы.
IЯ бы посоветовал вам попробовать это с полным хешем регулярных выражений / целых чисел и посмотреть, является ли разница более существенной.Если есть, то есть ваш ответ.Если нет, то вы можете свободно использовать то, что имеет больше смысла.