(便乗ネタ)テンプレートエンジンのベンチマークをTripletailでやってみた。
ClearSilver の Perl バインディングを使う(Perlのテンプレートエンジンのベンチマーク) - spiritlooseのはてなダイアリー
でClearSilver、Template-Toolkit、HTML::Templateのベンチマークを取っているのを見てTripletail::Templateも一緒にやってみた。
コードは同じやつを拝借してTripletail用のコードを追加する。
benchmark.pl
#!/usr/bin/perl use strict; use warnings; use Benchmark qw(timethese cmpthese); use Template; use ClearSilver; use HTML::Template; use Tripletail qw(/dev/null); my $bench = timethese(10000, { 'Template-Toolkit' => sub { my $tt = Template->new; my $out; $tt->process('hello.tmpl', { message => 'hello world!' }, ?$out); }, 'ClearSilver' => sub { my $hdf = ClearSilver::HDF->new; $hdf->setValue('message', 'hello world!'); my $cs = ClearSilver::CS->new($hdf); $cs->parseFile('hello.tmpl'); my $out = $cs->render; }, 'HTML::Template' => sub { my $template = HTML::Template->new(filename => 'hello.tmpl'); $template->param(message => 'hello world!'); my $out = $template->output; }, 'Tripletail' => sub { my $t = $TL->newTemplate('hello.tmpl'); $t->expand(message => 'hello world!'); my $str = $t->toStr(); }, }, ); cmpthese($bench);
hello.tmpl
[% message %] <?cs var:message ?> <TMPL_VAR NAME=message> <&message>
こうなった。
Rate | Template-Toolkit | Tripletail | HTML::Template | ClearSilver | |
---|---|---|---|---|---|
Template-Toolkit | 215/s | -- | -29% | -80% | -98% |
Tripletail | 303/s | 41% | -- | -72% | -97% |
HTML::Template | 1078/s | 401% | 256% | -- | -91% |
ClearSilver | 11765/s | 5368% | 3785% | 992% | -- |
うーむ。
-
- -