2010-04-16
OSDC.TWで発表します
来週末、4/24に開催されるOSDC.TW(or Shibuya.pm #13)で発表します。
そこでは、高速テンプレートエンジン Xslate を紹介するつもりです。これはまだコードを書き始めたばかりで完成には程遠いものの、すでに従来のテンプレートエンジンと比較すると数倍のパフォーマンスが出ています。
もちろん、いくら高速でも使いにくければ意味がありません。この点では、たとえばText::MicroTemplateなどのように、出力を自動的にHTMLエスケープする機能などもすでに持っています。
とりあえず今のところは以下のようなテンプレートで:
Hello, <:= $lang :> world!
構文がよく似たText::MicroTemplateや、簡易文字列展開法であるs/%(\w+)%/$vars{$1}/gと比較すると以下の通りです*1。
$ perl -Mblib benchmark/interpolate.pl
Perl/5.10.1 i686-linux
Text::Xslate/0.001
Text::MicroTemplate/0.11
Rate s///g mt xslate
s///g 7177/s -- -1% -78%
mt 7245/s 1% -- -78%
xslate 32581/s 354% 350% --
リストのループを行う以下のようなテンプレートでは:
<ul>
: for $books ->($item) {
<li><:= $item.title :></li>
: }
</ul>
Text::MicroTemplateやHTML::Template::Proと比較すると、やはり圧倒的に高速です。
$ perl -Mblib benchmark/for.pl
Perl/5.10.1 i686-linux
Text::Xslate/0.001
Text::MicroTemplate/0.11
HTML::Template::Pro/0.94
Rate mt ht xslate
mt 11270/s -- -20% -60%
ht 14092/s 25% -- -50%
xslate 28183/s 150% 100% --
まだ課題は多数ありますが、いい感じだと思います。では続きは台湾で!
トラックバック - http://d.hatena.ne.jp/gfx/20100416/1271391273
リンク元
- 44 http://twitter.com/
- 26 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 21 http://feed-tv.com/285nLy.html
- 16 http://reader.livedoor.com/reader/
- 16 http://twitter.com/__gfx__
- 14 http://twitter.com/lestrrat
- 12 http://b.hatena.ne.jp/
- 10 http://b.hatena.ne.jp/entrylist/it
- 10 http://www.google.com/reader/view/
- 8 http://www.google.co.jp/reader/view/?hl=ja&tab=wy


