ServletContainer比較?

今日、ServletContainer比較ということで、以下を動かしてみた。

    1. winstone 0.9.10
    2. jetty 5
    3. glassfish v2

比較に使ったのは以下2つ

    1. RedMine をJRubyOnRails用にwarファイル化したもの
    2. Tomcat付属のHelloWorldアプリ

んで、今回自分の興味のあったポイントは以下2点

    1. 起動速度
    2. 応答速度

いろいろな方のBlogエントリをみて「Winstoneが軽くてよさそう!」と思い期待していたのですが、応答速度ということでみると、Jetty, Glassfishともに軽快に動いていた一方Winstoneはどちらも3-4倍ぐらい応答時間がかかっている感じで、動きがもっさりした印象となってしまいました。

アプリの起動に関しては、WinstoneはHelloWorldを1秒かからないぐらいで起動してくれて「さすがっ」と思いました。が、RedMine(JRubyOnRails)についてはRailsのライブラリを読まないといけないからか、やっぱり10秒以上かかってしまいました。まあ、これはある種特殊な用途なわけで、Winstoneのせいじゃ全然ないと思うんですけどね。

Winstoneの応答速度が不味く見えた原因として、自分がJettyもGlassfishも、専用起動コマンドで最適化された状態で起動したのに対し、Winstoneは素のjavaコマンドで起動したあたりが問題だったのかなぁとも思います。一応-Xmxとかその辺のオプションをつけてメモリを増やしたりはしてみたんですが、今日のところは目に見えた効果が出ず。

まあチューニングとかあんまりよくはわかってない状態でテキトーにやっただけなので、効果がでなくてもあたり前っちゃ当たり前。
ということで次は、glassfishやjettyの起動オプションを参考に、もうちょっとちゃんとチューニングして起動してみたいなと思います。

(& Winstoneのソースも読んでみたいかな・・)