AzaraC をつかってみた
http://labs.preferred.jp/azarac/
http://labs.cybozu.co.jp/blog/hata/archives/2006-10-16-1.html
なにやらC++のテンプレートエンジンがリリースされたそうなので試してみた。
ちょっと試してみた感想だけど、これ一般的なテンプレートエンジンって呼ばれているものとはかなり違う。
JSPが一番イメージに近いと思う。
テンプレートファイルをパースして標準出力に書き出すようにしてるところとか。(JSPはPrintWriter#writeln()に変換してる)。
今のところ標準出力にしか出力できない(hackしないと)。
CならやっぱりClearSilverとか使ったほうがよさげ。
ClearSilverとベンチとって比較してみた。
AzaraCのソースは http://labs.preferred.jp/azarac/tutorial.php の一番最初のやつ。
ClearSilverのソースは
#include <stdio.h> #include "ClearSilver.h" NEOERR *render_cb(void *data, char *s) { printf("%s", s); return STATUS_OK; } int main() { HDF *hdf; CSPARSE *cs; hdf_init(&hdf); cs_init(&cs, hdf); cs_parse_file(cs, "cs.cs"); cs_render(cs, NULL, render_cb); cs_destroy(&cs); hdf_destroy(&hdf); return 0; }
テンプレートはおんなじ感じ。
で両方ともCGIにして、abでベンチとってみた結果が以下。
AzaraC
Requests per second: 192.45 [#/sec]
ClearSilver
Requests per second: 351.63 [#/sec]
ClearSilverのほうが倍ぐらい速い。
まぁ、C++使える人がお手軽に速いCGI作りたいならいいかもしれないけど。
あと、インストールでちょっとはまった。
debian + GCC 3.3.5 ではコンパイルできなかった。
CentOS 4.4 + GCC 3.4.6 の環境では問題なし。
深追いする気がなかったので詳しくは調べてない。