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 の環境では問題なし。


深追いする気がなかったので詳しくは調べてない。