static-filesがどのくらい早いか検証してみた

Google App Engine/Javaではデプロイしたファイル郡から静的なリソースに関して、appengine-web.xml で定義することにより特別な扱いにすることができます。静的ファイルに設定したリソースのURLはウェブアプリケーションにリクエストが来ません。ドキュメントによれば、別サーバで管理しているようです。

ではどのくらい効果があるのでしょうか?20KBほどのファイルを設置して試してみました。
まず、静的ファイルに設定した場合、

06-15 05:36AM 12.027 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 12.027 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 12.027 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 10.716 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 10.716 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 09.411 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 09.411 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 08.100 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 08.100 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 06.792 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)
06-15 05:36AM 06.792 /static/index.html 200 1ms 0cpu_ms 0kb gzip(gfe)

次にstatic-filesには指定せずにServletFilterを素通りさせた場合、

06-15 05:35AM 22.060 /index.html 200 38ms 38cpu_ms 20kb gzip(gfe)
06-15 05:35AM 20.723 /index.html 200 22ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 19.404 /index.html 200 19ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 18.090 /index.html 200 18ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 16.761 /index.html 200 18ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 15.417 /index.html 200 25ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 14.098 /index.html 200 15ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 12.774 /index.html 200 24ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 11.452 /index.html 200 20ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 10.135 /index.html 200 18ms 0cpu_ms 20kb gzip(gfe)
06-15 05:35AM 08.821 /index.html 200 16ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 07.500 /index.html 200 19ms 19cpu_ms 20kb gzip(gfe)
06-15 05:35AM 07.500 /index.html 200 19ms 19cpu_ms 20kb gzip(gfe)

と、処理時間に関してはstatic-filesに設定する方が20〜40倍ほど早いですが、数十ミリ秒のオーダーなのでそこまで気にしなくてもいいのかもしれません。ですが、CPU時間の方はstatic-filesにすると0ms、つまり課金の対象からはずれ、アプリケーションで処理すると少しだけですがCPU時間を消費するということです。これは塵もつもれば…と考えて、有効に使うべきと考えてよいでしょう。

mod_rewriteが欲しい件

と、なんでこんなことを調べていたかというと、etupirkacmsでテンプレートの切り替えをどう実装しようか?という問題です。CMSというからには幾つかのテンプレートを切り替えられるとそれっぽくなります。なので、war配下にテンプレート用のディレクトリを作り、ディレクトリごとにテンプレートを管理しようと考えています。例えばこんな感じ。

/war
+ /templates
+ /pattern_a
+ + index.html
+ /pattern_b
+ index.html

これらのテンプレートを編集する場合、どうしても静的ファイルは/pattern_aをルートに設置したいです。理由はブラウザでプレビューが簡単に出来ることと、Dreamweaverなどのツールを使うからです。しかし、つぎのようにstaticファイルを配置した場合、アクセスするには/warからフルパスで指定しなければならなくなります。

/war
+ /templates
+ /pattern_a
+ + index.html
+ + /static .. CSSなど
+ /pattern_b
+ index.html
+ /static .. CSSなど

となると、動的なファイルとして扱うしかない・・・のかな、ということです。簡単にURLパターンを定義できるような仕組みがAppEngineでも欲しいところです。
他の解決方法としては、静的ファイルは/staticで固定、すべてのテンプレートで共通!という感じですが、あまりいけてないですねorz

なにか解決方法があれば教えてください。