前提: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とほぼ同じ速度である。