Perl Template Roundup June 2010
This Template Roundup was generated from benchmarks gathered during June 2010, using versions of the various template engines available at that time.
This is the second run, however I'm publishing it at the same time as the first run, so there may be undiscovered wrinkles in the reports, if you spot anything odd please don't be afraid to ask about it or send me a bug report.
It's rather quaint in this day and age to warn that a page contains a lot of images but, be advised, some of these reports do contain up to a hundred chart images.
You can leap right in to see the charts from the reports page, but I advise you to read the glossary first, and you might want to read about the methodology too.
The raw benchmark data used to construct these reports is available, but only on request. I don't have bandwidth to burn on idly curious downloads.
Important Notes for the June 2010 Roundup
This report has featured a change from running template lengths of 1, 10 and 30 repeats to a slightly easier-to-compare set of 1, 15 and 30 repeats.
Text::Xslate hasn't been benchmarked for use of functions within an expression because the current version of plugin for Template::Benchmark doesn't support it. This shouldn't be taken as a lack of support within Text::Xslate itself.
The shared memory caching still seems to work intermittently on my benchmark machine, so the results are possibly unreliable. Since only one template engine has shared memory caching implemented in its Template::Benchmark plugin, the results probably wouldn't have made for an interesting "comparison" anyway.
Template Engines Used for the June 2010 Roundup
Variant | Description |
---|---|
HT | HTML::Template (2.9) |
HTC | HTML::Template::Compiled (0.94) |
HTE | HTML::Template::Expr (0.07) |
HTJ | HTML::Template::JIT (0.05) |
HTP | HTML::Template::Pro (0.95) |
MoTe | Mojo::Template (0.999924) |
NT | NTS::Template (2.1) |
TAHT | Template::Alloy (1.013) in HTML::Template mode |
TATT | Template::Alloy (1.013) in Template::Toolkit mode |
TATT_P | Template::Alloy (1.013) in Template::Toolkit mode (compile to perl) |
TATT_PS | Template::Alloy (1.013) in Template::Toolkit mode (compile to perl, using process_simple()) |
TATT_S | Template::Alloy (1.013) in Template::Toolkit mode (using process_simple()) |
TS | Template::Sandbox (1.04) without caching |
TS_CF | Template::Sandbox (1.04) with Cache::CacheFactory (1.10) caching |
TS_CHI | Template::Sandbox (1.04) with CHI (0.35) caching |
TS_FMM | Template::Sandbox (1.04) with Cache::FastMmap (1.35) caching |
TT | Template::Toolkit (2.22) |
TT_X | Template::Toolkit (2.22) with Stash::XS (no version number) |
TT_XCET | Template::Toolkit (2.22) with Stash::XS (no version number) and Template::Parser::CET (0.05) |
TTiny | Template::Tiny (0.11) |
TeCS | Text::ClearSilver (0.10.5.4) |
TeMMHM | Text::MicroMason (2.07) using Text::MicroMason::HTMLMason (no version number) |
TeMMTeTe | Text::MicroMason (2.07) using Text::MicroMason::TextTemplate (no version number) |
TeMT | Text::MicroTemplate (0.13) |
TeTe | Text::Template (1.45) |
TeTeSimp | Text::Template::Simple (0.82) |
TeTmpl | Text::Tmpl (0.33) |
TeXs | Text::Xslate (0.1027) |
Tenj | Tenjin (0.061) |
Thanks
Thanks go out to Jakub Narebski for valuable feedback and suggestions.