Perl Template Roundup October 2010

This Template Roundup was generated from benchmarks gathered during October 2010, using versions of the various template engines available at that time.

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 October 2010 Roundup

New from last time are benchmarks for HTML::Mason, HTML::Macro, Parse::Template, Solution, Text::Clevery and Text::Templet template engines.

The Template::Sandbox engine now also has benchmarks for Cache::FastMemoryCache and Cache::Ref::FIFO caching strategies.

Text::Xslate now has its pure-perl mode benchmarked, as well as its Template::Toolkit "bridge mode". Text::Xslate has been under heavy development since the last report and it has now joined the small number of template engines that implement all the template features that Template::Benchmark can currently benchmark. Futhermore, in disk-caching mode Text::Xslate has dramatically improved, where there was previously a punishing 90-94% drop-off in performance as the length of the template increased, this report now sees a much more reasonable drop-off on the order of 50-60% and only 25% in some cases - looks like the switch to Data::MessagePack for serialization paid some dividends.

Text::Clevy is also new in the results but should be ignored, it was renamed to Text::Clevery, its inclusion in the results was an oversight.

HTML::Mason has suspiciously low performance in memory-cache mode, almost identical to disk-cache performance, I'm inclined to think that the fault there is mine, and will be looking at the Template::Benchmark plugin to see just what's going on.

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 October 2010 Roundup

HMHTML::Mason (1.45)
HMacHTML::Macro (1.29)
HTHTML::Template (2.9)
HTCHTML::Template::Compiled (0.94)
HTEHTML::Template::Expr (0.07)
HTJHTML::Template::JIT (0.05)
HTPHTML::Template::Pro (0.9504)
MoTeMojo::Template (0.999929)
NTNTS::Template (2.1)
PTParse::Template (3.07)
SolSolution (0.0004)
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_01) without caching
TS_CFTemplate::Sandbox (1.04_01) with Cache::CacheFactory (1.10) caching
TS_CFMTemplate::Sandbox (1.04_01) with Cache::FastMemoryCache (0.01) caching
TS_CHITemplate::Sandbox (1.04_01) with CHI (0.36) caching
TS_CRFTemplate::Sandbox (1.04_01) with Cache::Ref::FIFO (0.04) caching
TS_FMMTemplate::Sandbox (1.04_01) with Cache::FastMmap (1.36) 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 (
TeClevText::Clevery (0.0003) in XS mode
TeClevyText::Clevy (0.0002) in XS mode
TeMMHMText::MicroMason (2.12) using Text::MicroMason::HTMLMason (no version number)
TeMMTeTeText::MicroMason (2.12) using Text::MicroMason::TextTemplate (no version number)
TeMTText::MicroTemplate (0.18)
TeMTEText::MicroTemplate::Extended (0.11)
TeTeText::Template (1.45)
TeTeSimpText::Template::Simple (0.82)
TeTempletText::Templet (3.0)
TeTmplText::Tmpl (0.33)
TeXsText::Xslate (0.2012)
TeXsPPText::Xslate::PP (0.2012)
TeXsTTText::Xslate (0.2012) in Template::Toolkit mode
TenjTenjin (0.062)


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

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