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

Version Path
mustermann-3.0.3 bench/regexp.rb
mustermann-3.0.2 bench/regexp.rb
mustermann-3.0.1 bench/regexp.rb
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/mustermann-3.0.0/bench/regexp.rb
rubypitaya-3.12.4 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/mustermann-3.0.0/bench/regexp.rb
rubypitaya-3.12.3 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/mustermann-3.0.0/bench/regexp.rb
rubypitaya-3.12.2 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/mustermann-3.0.0/bench/regexp.rb
mustermann-3.0.0 bench/regexp.rb
mustermann-2.0.2 bench/regexp.rb
mustermann-2.0.1 bench/regexp.rb
mustermann-2.0.0 bench/regexp.rb
mustermann-1.1.2 bench/regexp.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/mustermann-1.1.1/bench/regexp.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/mustermann-1.1.1/bench/regexp.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/mustermann-1.1.1/bench/regexp.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/mustermann-1.1.1/bench/regexp.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/mustermann-1.0.3/bench/regexp.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.4.0/gems/mustermann-1.0.3/bench/regexp.rb
mustermann-1.1.1 bench/regexp.rb
mustermann-1.1.0 bench/regexp.rb