Perl Template Roundup October 2010 Performance vs Variant Report: instance_reuse
In each of the charts below, a bigger bar and higher number for performance is better.
In the performance drop-off charts a higher (less negative) percentage is better, that is -75% is better than -95%.
Proportionally speaking, a narrow difference between the biggest and smallest colours of the performance drop-off chart is better than a wide difference, although pay attention to the percentage value next to the bar for an accurate value: it can be hard to judge the proportions by eye.
All values (except drop-off percentages) are rounded to three significant figures for readability.
Jump to chart
Related Reports
cache_type |
|
---|---|
purity | |
syntax_type |
Chart Key
Variant | Description |
---|---|
HM | HTML::Mason (1.45) |
HMac | HTML::Macro (1.29) |
MoTe | Mojo::Template (0.999929) |
PT | Parse::Template (3.07) |
Sol | Solution (0.0004) |
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_01) without 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) |
TeCS | Text::ClearSilver (0.10.5.4) |
TeClev | Text::Clevery (0.0003) in XS mode |
TeClevy | Text::Clevy (0.0002) in XS mode |
TeMMHM | Text::MicroMason (2.12) using Text::MicroMason::HTMLMason (no version number) |
TeMMTeTe | Text::MicroMason (2.12) using Text::MicroMason::TextTemplate (no version number) |
TeMT | Text::MicroTemplate (0.18) |
TeTe | Text::Template (1.45) |
TeXs | Text::Xslate (0.2012) |
TeXsPP | Text::Xslate::PP (0.2012) |
TeXsTT | Text::Xslate (0.2012) in Template::Toolkit mode |
Tenj | Tenjin (0.062) |
literal_text
A chunk of literal text, dumped through to the output largely unchanged from its form in the template.
"Largely unchanged" means that where possible any encoding or escaping is turned off, however some engines may not have this option.
scalar_variable
Interpolation of a template variable.
hash_variable_value
Interpolation of a value of a hashref template variable.
array_variable_value
Interpolation of an element of an arrayref template variable.
deep_data_structure_value
Interpolation of a value stored in a 6-deep hashref structure.
This is designed to stress the speed that the template engine traverses deep data-structures.
array_loop_value
Loop across a template variable arrayref of scalar elements dumping their values, by any means available.
hash_loop_value
Loop across a template variable hashref of scalar values dumping both key and value, by any means available.
records_loop_value
Loop across a template variable arrayref of hashrefs, as per a result-set of records, dumping each record, by any means available.
array_loop_template
Loop across a template variable arrayref of scalar elements dumping their values, specifically by executing a template block.
hash_loop_template
Loop across a template variable hashref of scalar values dumping both key and value, specifically by executing a template block.
records_loop_template
Loop across a template variable arrayref of hashrefs, as per a result-set of records, dumping each record, specifically by executing a template block.
constant_if_literal
Conditionally choose to insert some content, by any means available, if a constant value is true.
This tests for constant-folded optimizations.
variable_if_literal
Conditionally choose to insert some content, by any means available, if a template variable is true.
constant_if_else_literal
Conditionally choose to insert some content or some alternate content, by any means available, depending on whether a constant value is true or false.
This tests for constant-folded optimizations.
variable_if_else_literal
Conditionally choose to insert some content or some alternate content, by any means available, depending on whether a template variable is true or false.
constant_if_template
Conditionally choose to insert some content, specifically by execution of a template block, if a constant value is true.
This tests for constant-folded optimizations.
variable_if_template
Conditionally choose to insert some content, specifically by execution of a template block, if a template variable is true.
constant_if_else_template
Conditionally choose to insert some content or some alternate content, specifically by execution of a template block, depending on whether a constant value is true or false.
This tests for constant-folded optimizations.
variable_if_else_template
Conditionally choose to insert some content or some alternate content, specifically by execution of a template block, depending on whether a template variable is true or false.
constant_expression
Insert the result of evaluating an expression composed of constant terms.
This tests for constant-folded optimizations.
variable_expression
Insert the result of evaluating an expression composed of template variables.
complex_variable_expression
Insert the result of evaluating a complicated expression composed of template variables.
This is designed to stress the expression handling code of an engine.
constant_function
Insert the result of a function call (or equivilent, such as vmethod) within a template expression, on a constant literal.
This tests for constant-folded optimizations.
variable_function
Insert the result of a function call (or equivilent, such as vmethod) within a template expression, on a template variable.
Related Reports
cache_type |
|
---|---|
purity | |
syntax_type |