我們在不同路徑有一堆不同認證機制的 Rack 中介軟體
你必須夠清楚知道哪些是你需要用到的
# sample_dir/config.ru
require "rack/lobster"
use Rack::ContentType
class BenchMarker
def initialize(app, runs = 100)
@app, @runs = app, runs
end
def call(env)
t = Time.now
result = nil
@runs.times { result = @app.call(env) }
t2 = Time.now - t
STDERR.puts <<OUTPUT
Benchmark:
#{@runs} runs
#{t2.to_f} seconds total
#{t2.to_f * 1000.0 / @runs} millisec/run
OUTPUT
result
end
end
use BenchMarker, 10_000
run Rack::Lobster.new
這是個簡單基礎的 Rack 應用程式,
下面可以看他平均花多少時間載入(很快速)
Benchmark:
10000 runs
0.476974 seconds total
0.0476974 millisec/run
其實 Rack 跑很快,
如果你的應用程式跑很慢,
可以去看一下從哪裡載入 Rack,
並且找出變慢的原因
ActionController::Dispatcher 是 Rails 主要的 Rack 應用程式
如果想看看 Rails 中的 Rack 如何運用,記得要來讀它
ActionController::Base 讓你可以針對 controller 的 action 使用 mini-Rack-apps