Amrita2やTenjinなどのベンチマークスクリプトを追加

Tenjinがどのくらい速いのかを測定したいので、Ramazeにベンチマークスクリプトを追加するパッチを投げました。HamlとEzamarのがもう既に存在しているから、そいつらを真似して追加してみただけなんですけどね。

benchmark scripts for Amrita2, Tenjin, etc.

具体的には以下のテンプレートエンジン用のを追加しました。

  • Amrita2
  • Tenjin
  • Liquid
  • Builder
  • Erubis
  • Markaby
  • RedCloth

というわけで以下が結果(簡易版)です。

====== no_template ======
Requests per second: 635.75 [#/sec] (mean)
====== template_amrita2 ======
Requests per second: 38.02 [#/sec] (mean) ... 追記:これは間違い!
====== template_ezamar ======
Requests per second: 328.97 [#/sec] (mean)
====== template_haml ======
Requests per second: 360.88 [#/sec] (mean)
====== template_tenjin ======
Requests per second: 498.26 [#/sec] (mean)
====== template_liquid ======
Requests per second: 481.54 [#/sec] (mean)
====== template_builder ======
Requests per second: 301.21 [#/sec] (mean)
====== template_erubis ======
Requests per second: 524.69 [#/sec] (mean)
====== template_markaby ======
Requests per second: 644.75 [#/sec] (mean) ... 追記:これも大間違い!
====== template_redcloth ======
Requests per second: 121.35 [#/sec] (mean)

げ、Tenjinあんまり速くないよ(期待し過ぎ?)。やっぱり私のやり方(Ramaze::Template::Tenjinの実装方法)がなにかマズかったのかも。あとAmrita2も感動するくらい遅いんですけど、これも私のせいかも(追記:やっぱり私のせいでした!ごめんなさい)。RedClothが遅いのはこれだけはどうしてもlayout使わなくちゃいけなかったりErubisにかぶせてあったりするために仕方ないと思って下さい。あー、しかしErubisやっぱり速いなぁ。Liquidが案外速いので驚きです。

ていうか Markaby が異常に速いのですが、これって何か間違ってる気がそこはかとなくするような感じでしょうか(追記:実際に間違っておりました、ごめんなさい!)。

追記

ごめんなさい、ベンチマークスクリプト自体にいっぱいいっぱいミスがあることが分かりました。うひ!Amrita2が遅いのは私の書いたベンチマークスクリプトにミスがあるせいです。あとRedClothはもっと遅くなります。加えてMarkabyもやっぱりそんなに速くないよ。直したもので測り直してみました。

====== no_template ======
Requests per second: 576.23 [#/sec] (mean)
====== template_amrita2 ======
Requests per second: 141.52 [#/sec] (mean)
====== template_ezamar ======
Requests per second: 180.76 [#/sec] (mean)
====== template_haml ======
Requests per second: 242.42 [#/sec] (mean)
====== template_tenjin ======
Requests per second: 302.71 [#/sec] (mean)
====== template_liquid ======
Requests per second: 469.06 [#/sec] (mean)
====== template_builder ======
Requests per second: 172.84 [#/sec] (mean)
====== template_erubis ======
Requests per second: 466.81 [#/sec] (mean)
====== template_markaby ======
Requests per second: 244.95 [#/sec] (mean)
====== template_redcloth ======
Requests per second: 57.06 [#/sec] (mean)

Amrita2はEzamarよりちょっと遅いくらい、Markabyはそこそこって感じでしょうか。うーん、Tenjinはいじってないのに。しかもLiquidがなぜか最速だよ。このベンチマークは100回のリクエスト結果によるものなのでちょっと不安定過ぎる気がします。従って現状ではあまり参考にならないかも知れません。ご注意下さい。