名古屋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のレンダリングよりも遅くなる例もある

他のセッションのメモもあるのですが、今日のまとめは取り敢えずここまでにします…
後日また別のメモをまとめてあげようと思います。

RubyとかRailsの中のソースまで読めるレベルになりたいです…(白目