Sha256: bf550e1499f075bab700f27f850b0cb751653cc9bdd6d35a3f6f86112f4e1f85
Contents?: true
Size: 508 Bytes
Versions: 40
Compression:
Stored size: 508 Bytes
Contents
require 'benchmark' puts " atomic vs normal segments ".center(52, '=') types = { normal: /\A\/(?:a|%61)\/(?<b>[^\/\?#]+)(?:\/(?<c>[^\/\?#]+))?\Z/, atomic: /\A\/(?:a|%61)\/(?<b>(?>[^\/\?#]+))(?:\/(?<c>(?>[^\/\?#]+)))?\Z/ } Benchmark.bmbm do |x| types.each do |name, regexp| string = "/a/" << ?a * 10000 << "/" << ?a * 5000 fail unless regexp.match(string) string << "/" fail if regexp.match(string) x.report name.to_s do 100.times { regexp.match(string) } end end end
Version data entries
40 entries across 37 versions & 6 rubygems