Sha256: 74f045f87af59faa5ec4778e5d7ae8bbb25d75d4f93b155ddd04bb463b37bda0

Contents?: true

Size: 1.45 KB

Versions: 8

Compression:

Stored size: 1.45 KB

Contents

require 'rubygems'
require 'rbench'
require 'lib/usher'

u = Usher::Interface.for(:rack)
u.add('/simple').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})
u.add('/simple/again').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})
u.add('/simple/again/and/again').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})
u.add('/dynamic/:variable').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})
u.add('/rails/:controller/:action/:id').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})
u.add('/greedy/{!:greed,.*}').to(proc{|env| [200, {'Content-type'=>'text/html'}, []]})

TIMES = 50_000

simple_env = Rack::MockRequest.env_for('/simple')
simple2_env = Rack::MockRequest.env_for('/simple/again')
simple3_env = Rack::MockRequest.env_for('/simple/again/and/again')
simple_and_dynamic_env = Rack::MockRequest.env_for('/simple/anything')
simple_and_dynamic_env1 = Rack::MockRequest.env_for('/rails/controller/action/id')
simple_and_dynamic_env2 = Rack::MockRequest.env_for('/greedy/controller/action/id')

RBench.run(TIMES) do

  report "2 levels, static" do
    u.call(simple_env)
  end

  report "4 levels, static" do
    u.call(simple2_env)
  end
  
  report "8 levels, static" do
    u.call(simple3_env)
  end
  
  report "4 levels, 1 dynamic" do
    u.call(simple_and_dynamic_env)
  end
  
  report "8 levels, 3 dynamic" do
    u.call(simple_and_dynamic_env1)
  end
  
  report "4 levels, 1 greedy" do
    u.call(simple_and_dynamic_env2)
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
usher-0.8.3 benchmarks/rack_recognition_bm.rb
usher-0.8.2 benchmarks/rack_recognition_bm.rb
usher-0.8.1 benchmarks/rack_recognition_bm.rb
usher-0.8.0 benchmarks/rack_recognition_bm.rb
usher-0.7.5 benchmarks/rack_recognition_bm.rb
usher-0.7.4 benchmarks/rack_recognition_bm.rb
usher-0.7.3 benchmarks/rack_recognition_bm.rb
usher-0.7.2 benchmarks/rack_recognition_bm.rb