expressで使えるテンプレートエンジンのベンチマークをとってみた

テンプレートエンジンの比較をあまり見かけたことがなかったので
ベンチマークとってみました。


Node.jsのbenchmarkライブラリ使っても良かったんですが、
express使わない場合とも比較してみたかったので
普通にapache benchを使っています。


ちなみに今回はこちらのリストからexpress標準で使えるものを対象にしました*1

Express バージョン

2.5.8

abパラメータ

ab -c 10 -n 5000 http://127.0.0.1:3000/

結果:Lite

HTTPエンジン テンプレートエンジン rps
simple_server - 4580.91
express - 3874.71
express jade 1565.11
express ejs 1985.28
express haml 1812.10
express jqtpl 1971.07
express jst 2062.04
express whiskers 2034.63
express thunder 2044.22
結果:Lite(FULL)

https://gist.github.com/2853822


テンプレート使う/使わないで結構違いますね。
生で使う場合にはエスケープなど頑張る必要がありますが、
パフォーマンスが欲しい時には生でやるのもありかと。


テンプレート別についてはそんなに大きな違いはないようです。
デフォルトの挙動や機能の違いなどは考慮していないので
今回の結果はあくまでおおざっぱな目安として見るのがいいかもしれませんね。


※2012/6/2 Heavy(10Kbyte)追加

結果:Heavy

HTTPエンジン テンプレートエンジン rps
simple_server - 3642.35
express - 2790.62
express jade 974.95
express ejs 345.64
express haml 1183.48
express jqtpl 1219.87
express jst 1529.26
express whiskers 1214.09
express thunder 1199.63


結果のHTMLを少し大きくしてみました。
軒並みベンチマークが落ちますが
とりわけejsが落ちてますね。なんでだろ。
このベンチマークだけ見るとjstが速いっぽいが…

*1:たぶんexpress互換でなくてもすこし手を加えれば動くと思いますが、今回は除外