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

HTHTML::Template (2.9)
HTCHTML::Template::Compiled (0.94)
HTEHTML::Template::Expr (0.07)
HTJHTML::Template::JIT (0.05)
HTPHTML::Template::Pro (0.95)
MoTeMojo::Template (0.999924)
NTNTS::Template (2.1)
TAHTTemplate::Alloy (1.013) in HTML::Template mode
TATTTemplate::Alloy (1.013) in Template::Toolkit mode
TATT_PTemplate::Alloy (1.013) in Template::Toolkit mode (compile to perl)
TATT_PSTemplate::Alloy (1.013) in Template::Toolkit mode (compile to perl, using process_simple())
TATT_STemplate::Alloy (1.013) in Template::Toolkit mode (using process_simple())
TSTemplate::Sandbox (1.04) without caching
TS_CFTemplate::Sandbox (1.04) with Cache::CacheFactory (1.10) caching
TS_CHITemplate::Sandbox (1.04) with CHI (0.35) caching
TS_FMMTemplate::Sandbox (1.04) with Cache::FastMmap (1.35) caching
TTTemplate::Toolkit (2.22)
TT_XTemplate::Toolkit (2.22) with Stash::XS (no version number)
TT_XCETTemplate::Toolkit (2.22) with Stash::XS (no version number) and Template::Parser::CET (0.05)
TTinyTemplate::Tiny (0.11)
TeCSText::ClearSilver (
TeMMHMText::MicroMason (2.07) using Text::MicroMason::HTMLMason (no version number)
TeMMTeTeText::MicroMason (2.07) using Text::MicroMason::TextTemplate (no version number)
TeMTText::MicroTemplate (0.13)
TeTeText::Template (1.45)
TeTeSimpText::Template::Simple (0.82)
TeTmplText::Tmpl (0.33)
TeXsText::Xslate (0.1027)
TenjTenjin (0.061)


Thanks go out to Jakub Narebski for valuable feedback and suggestions.

© 2009-2013 Sam Graham, unless otherwise noted. All rights reserved.