名古屋Ruby会議02 その1
http://regional.rubykaigi.org/nagoya02
行ってきました!
ネコギギさんのブログにも記事があります。
http://blog.goo.ne.jp/richardwang/e/6cfe3b267b8e9e72d3fa0059ef53328d
ちょっとだけ録画が残ってました
http://www.ustream.tv/recorded/12945454
以下メモです。
「CGIを高速化する小手先テクニック」
- なぜCGIは遅いのか
- プロセスの起動が遅いとよく言われている
- 実際は、プロセスが遅いのは事実だが、真実は「ライブラリの読み込み」
- なにもしないRubyはrequireに6ms
- 他のライブラリ、cgiとかは11ms
- sessionも異常に遅い
- rubygemsは空の状態であれば遅くないが、インストール数に応じて重くなる
- 100msを超えるぐらいになってしまう
- rssがデフォルトのライブラリの中で一番遅い。320msで異常
- file utilesは遅い。これを読み込まなければ早い。
- オンデマンドで、必要な所だけで読み込むようにすると、速度が大幅に改善される
- Delegateクラスを使ったライブラリの問題
- Delegateクラスは中で、元のクラスを列挙しているため、ループがある。
- cgi.rbの読み込みが遅い原因
- Delegateクラスを使わないようにすると改善できる
- Opensslを読み込むだけで遅くなる。関連して、読み込んでいるライブラリもおそくなっている。
- cgiでSSL通信をしないといけないときはopensslを呼ばないといけないが、セッションidを生成するだけなら、要らない。だから、自前で準備した方がいい
- 1.8.7だとセキュアランダムを使っているからどうしても遅くなる。
- 出来るなら自前でセッションIDを作成すべき
- cgiでは、セッションIDこれで大丈夫なのかというのがあったりするから、自分で作ったほうが安心
- エスケープ用のメソッドは2つ用意すべき
- データによってかなり特性があって、そのコードがデータによって遅くなったりするから。
- HTMLのレンダリングよりも遅くなる例もある
他のセッションのメモもあるのですが、今日のまとめは取り敢えずここまでにします…
後日また別のメモをまとめてあげようと思います。