1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
require 'benchmark'
Benchmark.bmbm do |bm|
bm.report("control") { str = '123456789'; 1_000_000.times { str; /.../ } }
bm.report("String\#scan success") do
str = '123456789'; 1_000_000.times { str.scan(/.../) }
end
bm.report("String\#scan fail") do
str = '123456789'; 1_000_000.times { str.scan(/111/) }
end
bm.report("String\#scan success, large string (0.01 scale)") do
str = '123456789' * 100; 10_000.times { str.scan(/.../) }
end
bm.report("String\#scan fail, large string (0.01 scale)") do
str = '123456789' * 100; 10_000.times { str.scan(/111/) }
end
end
|