タグ

rackに関するbayashi_netのブックマーク (3)

  • Rack Middleware たちがどのように呼ばれるかを見てみよう(e.g. Sinatra) « blog.udzura.jp

    Sinatra::Base.middleware そもそも、 Sinatra::Base を継承したクラスには、クラスメソッドとして Sinatra::Base.middleware が用意されており、明示的に Sinatra::Base.use で利用を宣言したミドルウェアはそこから一覧を取得できる。 + (Object) middleware ところが、 Sinatra アプリケーションが実際に Rack でホストされ、アクセスされる際には、 use で宣言していないミドルウェアもたくさん呼ばれるわけで。その全貌が知りたい場合。むろん、 Rails、Ramaze、Camping といった Rack に対応したフレームワークならば同じような方法で「中を覗く」ことが可能なはず。 set_trace_func を使ってみる Kernel#set_trace_func は profile.rb

  • Railsで遅いMiddlewareを探す - 昼メシ物語

    AさんはRailsで書かれたある遅いコードの検証をしていました。 X-Runtimeヘッダを見ると $ curl -Is localhost:3000/hello | grep X-Runtime X-Runtime: 5.008580 5秒もかかってる。 しかしRailsのログを見ると Started HEAD "/hello" for 127.0.0.1 at Tue Apr 03 13:04:11 +0900 2012 Processing by HelloController#index as */* Rendered text template (0.0ms) Completed 200 OK in 10ms (Views: 9.7ms) こんな感じで10msで返していることになっている。なんだこれは? こういう状況で疑わしいことの一つとして、Rack等のMiddlewareのど

    Railsで遅いMiddlewareを探す - 昼メシ物語
  • Greenbear Diary - 5分でわかるRack , シュレーディンガーの猫たち

    ■ [ruby][rack] 5分でわかるRack RackはRubyのためのWebサーバインターフェイスだ。 RubyでWebっていうとRailsが有名だけど、実はRails以外にもいろんなRuby用のWebアプリ用フレームワークが存在する。 Ramaze Merb Camping Waves などなど…。 一方Webを実際に動かすにはWebサーバが必要だ。RubyのためのWebサーバも、これまたいろんなものがある。 Apache(CGI, FastCGI..) WEBrick Mongrel Ebb Thin などなど…。 ここで問題が一つ。それは「フレームワークが増えるたびに、いろんなサーバをサポートするためのコードが必要になる」ってとこだ。 各フレームワークの作者がみんなそれぞれにCGIやMongrelに対応するためのコードを書いてるなんて、無駄だと思わないか? RackはWebア

    Greenbear Diary - 5分でわかるRack , シュレーディンガーの猫たち
  • 1