Winstoneを使ってみる。
噂によると起動が爆速らしい。
そして、ライブラリのサイズが超小さいらしい。
とりあえず、winstone-0.9.6.jarをダウンロード。
んで、めぼしいWebアプリが思いつかないので、teeda-html-exmapleを使う事に。
SVNからチェックアウトしてきて、webappフォルダをテキトーなフォルダにコピーしる。
今回は、JSPも使いたいので、Tomcatのcommon/libから必要なライブラリをコピーしてくる。
ディレクトリはこんな感じに。
んで、起動スクリプトはこんな感じ。
set JAVA_HOME=C:\jdk1.5.0_11 %JAVA_HOME%\bin\java -jar winstone-0.9.6.jar --useJasper --webroot=.\webapp
これだけ。
起動。普通にデプロイされたみたいな感じ。
http://localhost:8080/
にアクセスしると、Teedaのサンプルコードが色々動くます。
ちなみに、起動がモノスゲェ速いかと言うと、そんなに早くも無いのかなぁ…。
只、体感速度には明らかなる差があるのは間違い無い感じ。
後、useJasper=trueで起動すると、明らかに遅くなるます。
特に最初の時点で何かJspのコンパイルが走ったりしている訳ではナイケレド。
寧ろ、winstoneの起動が速すぎて、もしかしたらS2Containerの起動を遅く感じているのやも。
winstone-lite-0.9.6.jarにしてみると、動作が早くなった様に感じる。
winstone-liteだと、内部にServlet2.3とServlet2.2のDTDしか持って無いみたい。
つまり、Servlet2.4以降は、DTDじゃなくてXMLSchemaになるだもんで、
そのパースに時間がかかったりしてるのかな…。
全部入りとLiteの違いは、これですな。
The distribution jar is now available in two forms:
1. Complete version (winstone.jar): This contains the complete winstone feature-set, including AJP13 Apache connectors, Authentication/Realm support and Clustering support.
2. Lite version (winstone-lite.jar): This is the core winstone feature-set only, ie commonly used servlet features, as fast and reliable as possible, with unnecessary options removed.
つまり、フルバージョンでは、
から、少しだけ遅くなりますよん。と、まぁそういう事らしい。
でも、実質的には、AJP13のポートバインディング以外は、
オプションをONにしない限りピクリとも動かないので、
Complete versionとLite versionの違いはTCPポートを一つ余分に掴むかどうかだけなんじゃないかなぁ…とか。
あ、でも、LiteバージョンだとSSLも効かないから、
やっぱりその初期化コスト分は早くなるですなぁ…。
要は、Servlet2.3までのweb.xmlで、開発にしか使わないなら、
winstone-lite-0.9.6.jarを使いなさい。
と、まぁ、そういう事です。