Permalink
Browse files

Compare Base with Http

  • Loading branch information...
1 parent 6e039e8 commit bdb61c1dadd64ad4e146228ac8048fd0034fa8cc @jeremy jeremy committed May 25, 2009
Showing with 24 additions and 13 deletions.
  1. +24 −13 actionpack/examples/minimal.rb
@@ -7,12 +7,6 @@
require 'action_controller/new_base' if ENV['NEW']
require 'benchmark'
-class BaseController < ActionController::Base
- def index
- render :text => ''
- end
-end
-
class Runner
def initialize(app)
@app = app
@@ -29,14 +23,31 @@ def report(env, response)
response[2].each { |part| out.puts part }
out.puts '---'
end
+
+ def self.run(app, n)
+ env = { 'n' => n, 'rack.input' => StringIO.new(''), 'rack.errors' => $stdout }
+ t = Benchmark.realtime { new(app).call(env) }
+ puts "%d ms / %d req = %d usec/req" % [10**3 * t, n, 10**6 * t / n]
+ end
+end
+
+
+N = (ENV['N'] || 1000).to_i
+
+class BasePostController < ActionController::Base
+ def index
+ render :text => ''
+ end
+
+ Runner.run(action(:index), N)
end
-n = (ENV['N'] || 1000).to_i
-input = StringIO.new('')
+if ActionController.const_defined?(:Http)
+ class HttpPostController < ActionController::Http
+ def index
+ self.response_body = ''
+ end
-elapsed = Benchmark.realtime do
- Runner.new(BaseController.action(:index)).
- call('n' => n, 'rack.input' => input, 'rack.errors' => $stdout)
+ Runner.run(action(:index), N)
+ end
end
-puts "%dms elapsed, %d req/sec, %.2f msec/req" %
- [1000 * elapsed, n / elapsed, 1000 * elapsed / n]

0 comments on commit bdb61c1

Please sign in to comment.