Now Text::MicroTemplate is even faster than HTML::Template::Pro

前提:Text::MicroTemplateの速度を簡単にベンチマーク

Text::MicroTemplateを最適化したので,ベンチマークをとってみた。
スクリプトはほぼ同じだが,loop countは-1*1にした。

キャッシュを有効にした結果*2

$ perl benchmark_templates.pl
Perl/5.10.1 (i686-linux)
HTML::Template/2.9
HTML::Template::Compiled/0.94
HTML::Template::Pro/0.92
Template/2.22
Text::MicroTemplate/0.09
Benchmark: running HT, HT::C, HT::Pro, MT, TT for at least 1 CPU seconds...
(snip)
           Rate      HT      TT HT::Pro   HT::C      MT
HT       1745/s      --    -75%    -79%    -86%    -89%
TT       7111/s    307%      --    -13%    -44%    -57%
HT::Pro  8145/s    367%     15%      --    -36%    -51%
HT::C   12678/s    626%     78%     56%      --    -24%
MT      16593/s    851%    133%    104%     31%      --

永続環境という条件付きとはいえ,MTが最速になった。

ところで,結果は環境によってかなり異なるようだ。id:sfujiwaraさんの環境では以下のようになった。
http://gist.github.com/239271

Perl/5.10.0 (x86_64-linux-gnu-thread-multi)
HTML::Template/2.9
HTML::Template::Compiled/0.94
HTML::Template::Pro/0.92
Template/2.20
Text::MicroTemplate/0.09
Benchmark: running HT, HT::C, HT::Pro, MT, TT for at least 1 CPU seconds...
(snip)
           Rate      HT      TT   HT::C HT::Pro      MT
HT       2035/s      --    -76%    -85%    -89%    -90%
TT       8373/s    311%      --    -39%    -55%    -57%
HT::C   13652/s    571%     63%      --    -27%    -30%
HT::Pro 18618/s    815%    122%     36%      --     -5%
MT      19549/s    860%    133%     43%      5%      --

こちらだと,HTML::Template::Proとほぼ同じ速度である。

*1:1秒間繰り返せ,という意味

*2:バージョンが異なるのはリリース前だったため