Perl Template Roundup June 2010 Ranking Statistics

The following tables sum up the counts of how well a given template engine variant ranks in all the appropriate charts.

Since each chart has a different number of variants, the rank is converted to a quartile, and then how often the variant places in each quartile is totalled up.

This gives you a broad summary that lets you say "Template Engine X quite often appears to be among the best/above average/below average/among the worst."

This does not provide you with any useful information about how much "above average" it may be however. For example, the difference between "high" and "highest" quartiles may be small or it may be large for a given chart, these summaries do not convey that information at all.

The usefulness is further constrained by the fact that many of the engines that are highly optimized for one situation will perform badly in another, especially regarding caching, so you will get a split with the totals being mostly both very good and very bad for the summaries that aggregate across that split behaviour.

Given all the above qualifications, you might be wondering why I've bothered including them at all, well the answer to that is that they do let you get a reasonable idea of the relative strengths and weaknesses of a given template engine: if an engine is fairly consistently in the highest quartile most of the time, but is in the lowest quartile for another part of the table, it's probably a fair indication that the engine has problems in that area, and that those are the charts you probably want to take a look at for the underlying figures.

If you're wondering at the bias in the quartiles, take a look at the FAQ entry: "Why aren't those quartiles balanced?".

Grand Summary

Performance Distribution

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
HT 52% (100) 5% (11) 26% (50) 16% (31) 100% (192)
HTC 84% (203) 1% (3) 1% (4) 12% (30) 100% (240)
HTE 79% (242) 10% (31) 9% (29) 1% (4) 100% (306)
HTJ 50% (24) 0% (0) 16% (8) 33% (16) 100% (48)
HTP 50% (102) 0% (0) 0% (0) 50% (102) 100% (204)
MoTe 52% (227) 21% (92) 9% (41) 16% (72) 100% (432)
NT 51% (46) 11% (10) 20% (18) 17% (16) 100% (90)
TAHT 50% (156) 7% (22) 19% (59) 22% (69) 100% (306)
TATT 40% (169) 12% (51) 30% (128) 15% (66) 100% (414)
TATT_P 44% (124) 28% (78) 26% (72) 0% (2) 100% (276)
TATT_PS 11% (32) 45% (125) 15% (44) 27% (75) 100% (276)
TATT_S 16% (45) 18% (50) 19% (55) 45% (126) 100% (276)
TS 54% (236) 30% (132) 14% (61) 0% (3) 100% (432)
TS_CF 25% (73) 14% (41) 18% (53) 42% (121) 100% (288)
TS_CHI 55% (240) 10% (45) 8% (35) 25% (112) 100% (432)
TS_FMM 0% (0) 0% (0) 0% (0) 100% (144) 100% (144)
TT 94% (391) 5% (22) 0% (1) 0% (0) 100% (414)
TT_X 19% (79) 40% (168) 9% (40) 30% (127) 100% (414)
TT_XCET 17% (74) 59% (248) 4% (17) 18% (75) 100% (414)
TTiny 65% (51) 7% (6) 0% (0) 26% (21) 100% (78)
TeCS 50% (198) 6% (24) 10% (40) 33% (134) 100% (396)
TeMMHM 50% (216) 9% (39) 15% (69) 25% (108) 100% (432)
TeMMTeTe 81% (248) 6% (21) 2% (9) 9% (28) 100% (306)
TeMT 74% (321) 6% (28) 17% (76) 1% (7) 100% (432)
TeTe 64% (196) 3% (11) 18% (58) 13% (41) 100% (306)
TeTeSimp 65% (380) 20% (120) 7% (46) 5% (30) 100% (576)
TeTmpl 50% (72) 0% (1) 8% (12) 40% (59) 100% (144)
TeXs 80% (388) 0% (4) 2% (11) 16% (77) 100% (480)
Tenj 58% (254) 3% (16) 17% (74) 20% (88) 100% (432)

Performance Drop-off Distribution

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
HT 64% (41) 17% (11) 14% (9) 4% (3) 100% (64)
HTC 71% (57) 11% (9) 11% (9) 6% (5) 100% (80)
HTE 79% (81) 10% (11) 7% (8) 1% (2) 100% (102)
HTJ 50% (8) 0% (0) 6% (1) 43% (7) 100% (16)
HTP 50% (34) 0% (0) 0% (0) 50% (34) 100% (68)
MoTe 52% (76) 13% (19) 29% (42) 4% (7) 100% (144)
NT 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
TAHT 72% (74) 24% (25) 0% (1) 1% (2) 100% (102)
TATT 59% (82) 15% (21) 13% (19) 11% (16) 100% (138)
TATT_P 46% (43) 17% (16) 20% (19) 15% (14) 100% (92)
TATT_PS 76% (70) 15% (14) 8% (8) 0% (0) 100% (92)
TATT_S 80% (74) 10% (10) 8% (8) 0% (0) 100% (92)
TS 70% (102) 26% (38) 0% (1) 2% (3) 100% (144)
TS_CF 13% (13) 7% (7) 6% (6) 72% (70) 100% (96)
TS_CHI 43% (63) 3% (5) 15% (23) 36% (53) 100% (144)
TS_FMM 95% (46) 0% (0) 0% (0) 4% (2) 100% (48)
TT 52% (73) 30% (42) 14% (20) 2% (3) 100% (138)
TT_X 24% (34) 38% (53) 15% (21) 21% (30) 100% (138)
TT_XCET 5% (8) 30% (42) 18% (25) 45% (63) 100% (138)
TTiny 96% (25) 3% (1) 0% (0) 0% (0) 100% (26)
TeCS 50% (66) 3% (4) 4% (6) 42% (56) 100% (132)
TeMMHM 52% (75) 15% (23) 16% (24) 15% (22) 100% (144)
TeMMTeTe 75% (77) 6% (7) 3% (4) 13% (14) 100% (102)
TeMT 75% (108) 16% (24) 8% (12) 0% (0) 100% (144)
TeTe 52% (54) 14% (15) 16% (17) 15% (16) 100% (102)
TeTeSimp 51% (99) 5% (10) 24% (47) 18% (36) 100% (192)
TeTmpl 50% (24) 0% (0) 0% (0) 50% (24) 100% (48)
TeXs 81% (131) 8% (13) 3% (6) 6% (10) 100% (160)
Tenj 53% (77) 13% (19) 7% (11) 25% (37) 100% (144)

HT, HTML::Template (2.9)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (26) 16% (20) 28% (34) 33% (40) 100% (120)
memory_cache 33% (40) 18% (22) 48% (58) 0% (0) 100% (120)
uncached_disk 20% (24) 12% (15) 35% (43) 31% (38) 100% (120)
uncached_string 20% (24) 1% (2) 35% (42) 43% (52) 100% (120)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (100) 5% (11) 26% (50) 16% (31) 100% (192)
mini-language 4% (4) 23% (23) 53% (51) 18% (18) 100% (96)
pure-perl 6% (6) 7% (7) 41% (40) 44% (43) 100% (96)
pure-perl,mini-language 4% (4) 18% (18) 37% (36) 39% (38) 100% (96)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (32) 18% (29) 48% (77) 13% (22) 100% (160)
15 25% (40) 8% (13) 33% (53) 33% (54) 100% (160)
30 26% (42) 10% (17) 29% (47) 33% (54) 100% (160)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (12) 20% (12) 50% (30) 10% (6) 100% (60)
records_loop_template 35% (21) 26% (16) 33% (20) 5% (3) 100% (60)
records_loop_value 35% (21) 25% (15) 36% (22) 3% (2) 100% (60)
scalar_variable 20% (12) 6% (4) 36% (22) 36% (22) 100% (60)
variable_if_else_literal 20% (12) 6% (4) 31% (19) 41% (25) 100% (60)
variable_if_else_template 20% (12) 3% (2) 36% (22) 40% (24) 100% (60)
variable_if_literal 20% (12) 6% (4) 31% (19) 41% (25) 100% (60)
variable_if_template 20% (12) 3% (2) 38% (23) 38% (23) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 40% (16) 2% (1) 30% (12) 27% (11) 100% (40)
memory_cache 40% (16) 50% (20) 0% (0) 10% (4) 100% (40)
uncached_disk 50% (20) 30% (12) 20% (8) 0% (0) 100% (40)
uncached_string 40% (16) 15% (6) 32% (13) 12% (5) 100% (40)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (41) 17% (11) 14% (9) 4% (3) 100% (64)
mini-language 31% (10) 34% (11) 25% (8) 9% (3) 100% (32)
pure-perl 28% (9) 31% (10) 25% (8) 15% (5) 100% (32)
pure-perl,mini-language 25% (8) 21% (7) 25% (8) 28% (9) 100% (32)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 50% (10) 10% (2) 0% (0) 40% (8) 100% (20)
records_loop_template 95% (19) 5% (1) 0% (0) 0% (0) 100% (20)
records_loop_value 95% (19) 5% (1) 0% (0) 0% (0) 100% (20)
scalar_variable 20% (4) 25% (5) 25% (5) 30% (6) 100% (20)
variable_if_else_literal 20% (4) 40% (8) 35% (7) 5% (1) 100% (20)
variable_if_else_template 20% (4) 45% (9) 35% (7) 0% (0) 100% (20)
variable_if_literal 20% (4) 30% (6) 35% (7) 15% (3) 100% (20)
variable_if_template 20% (4) 35% (7) 35% (7) 10% (2) 100% (20)

HTC, HTML::Template::Compiled (0.94)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 89% (134) 2% (4) 8% (12) 0% (0) 100% (150)
memory_cache 20% (30) 0% (0) 0% (0) 80% (120) 100% (150)
uncached_disk 100% (150) 0% (0) 0% (0) 0% (0) 100% (150)
uncached_string 92% (138) 8% (12) 0% (0) 0% (0) 100% (150)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 84% (203) 1% (3) 1% (4) 12% (30) 100% (240)
mini-language 66% (80) 5% (6) 3% (4) 25% (30) 100% (120)
pure-perl 70% (85) 4% (5) 0% (0) 25% (30) 100% (120)
pure-perl,mini-language 70% (84) 1% (2) 3% (4) 25% (30) 100% (120)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 78% (157) 1% (3) 0% (0) 20% (40) 100% (200)
15 75% (151) 1% (3) 3% (6) 20% (40) 100% (200)
30 72% (144) 5% (10) 3% (6) 20% (40) 100% (200)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
deep_data_structure_value 75% (45) 5% (3) 0% (0) 20% (12) 100% (60)
hash_variable_value 76% (46) 3% (2) 0% (0) 20% (12) 100% (60)
literal_text 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)
records_loop_template 60% (36) 10% (6) 10% (6) 20% (12) 100% (60)
records_loop_value 61% (37) 8% (5) 10% (6) 20% (12) 100% (60)
scalar_variable 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)
variable_if_else_literal 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)
variable_if_else_template 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)
variable_if_literal 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)
variable_if_template 80% (48) 0% (0) 0% (0) 20% (12) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (10) 44% (22) 20% (10) 16% (8) 100% (50)
memory_cache 20% (10) 8% (4) 24% (12) 48% (24) 100% (50)
uncached_disk 84% (42) 8% (4) 6% (3) 2% (1) 100% (50)
uncached_string 80% (40) 12% (6) 6% (3) 2% (1) 100% (50)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 71% (57) 11% (9) 11% (9) 6% (5) 100% (80)
mini-language 37% (15) 32% (13) 2% (1) 27% (11) 100% (40)
pure-perl 42% (17) 20% (8) 25% (10) 12% (5) 100% (40)
pure-perl,mini-language 32% (13) 15% (6) 20% (8) 32% (13) 100% (40)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
deep_data_structure_value 50% (10) 25% (5) 15% (3) 10% (2) 100% (20)
hash_variable_value 50% (10) 25% (5) 15% (3) 10% (2) 100% (20)
literal_text 20% (4) 45% (9) 30% (6) 5% (1) 100% (20)
records_loop_template 40% (8) 10% (2) 15% (3) 35% (7) 100% (20)
records_loop_value 55% (11) 5% (1) 10% (2) 30% (6) 100% (20)
scalar_variable 60% (12) 15% (3) 5% (1) 20% (4) 100% (20)
variable_if_else_literal 60% (12) 5% (1) 25% (5) 10% (2) 100% (20)
variable_if_else_template 60% (12) 15% (3) 5% (1) 20% (4) 100% (20)
variable_if_literal 60% (12) 15% (3) 15% (3) 10% (2) 100% (20)
variable_if_template 55% (11) 20% (4) 5% (1) 20% (4) 100% (20)

HTE, HTML::Template::Expr (0.07)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 72% (185) 25% (64) 2% (6) 0% (0) 100% (255)
uncached_disk 70% (179) 12% (32) 14% (36) 3% (8) 100% (255)
uncached_string 67% (171) 9% (24) 15% (39) 8% (21) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 79% (242) 10% (31) 9% (29) 1% (4) 100% (306)
mini-language 66% (102) 23% (36) 9% (15) 0% (0) 100% (153)
pure-perl 58% (89) 16% (25) 13% (21) 11% (18) 100% (153)
pure-perl,mini-language 66% (102) 18% (28) 10% (16) 4% (7) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 61% (157) 25% (64) 12% (33) 0% (1) 100% (255)
15 74% (189) 11% (29) 9% (24) 5% (13) 100% (255)
30 74% (189) 10% (27) 9% (24) 5% (15) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 91% (41) 4% (2) 4% (2) 0% (0) 100% (45)
constant_expression 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
constant_function 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
constant_if_else_literal 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
constant_if_else_template 91% (41) 4% (2) 4% (2) 0% (0) 100% (45)
constant_if_literal 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
constant_if_template 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
literal_text 28% (13) 40% (18) 28% (13) 2% (1) 100% (45)
records_loop_template 86% (39) 13% (6) 0% (0) 0% (0) 100% (45)
records_loop_value 77% (35) 22% (10) 0% (0) 0% (0) 100% (45)
scalar_variable 20% (9) 33% (15) 37% (17) 8% (4) 100% (45)
variable_expression 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
variable_function 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
variable_if_else_literal 37% (17) 22% (10) 31% (14) 8% (4) 100% (45)
variable_if_else_template 33% (15) 28% (13) 28% (13) 8% (4) 100% (45)
variable_if_literal 28% (13) 31% (14) 22% (10) 17% (8) 100% (45)
variable_if_template 24% (11) 35% (16) 22% (10) 17% (8) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 57% (49) 42% (36) 0% (0) 0% (0) 100% (85)
uncached_disk 70% (60) 5% (5) 14% (12) 9% (8) 100% (85)
uncached_string 71% (61) 3% (3) 10% (9) 14% (12) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 79% (81) 10% (11) 7% (8) 1% (2) 100% (102)
mini-language 58% (30) 21% (11) 19% (10) 0% (0) 100% (51)
pure-perl 58% (30) 19% (10) 5% (3) 15% (8) 100% (51)
pure-perl,mini-language 56% (29) 23% (12) 0% (0) 19% (10) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_expression 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
constant_function 73% (11) 26% (4) 0% (0) 0% (0) 100% (15)
constant_if_else_literal 93% (14) 6% (1) 0% (0) 0% (0) 100% (15)
constant_if_else_template 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
constant_if_literal 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
constant_if_template 73% (11) 26% (4) 0% (0) 0% (0) 100% (15)
literal_text 33% (5) 60% (9) 6% (1) 0% (0) 100% (15)
records_loop_template 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
records_loop_value 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
scalar_variable 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
variable_expression 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
variable_function 73% (11) 26% (4) 0% (0) 0% (0) 100% (15)
variable_if_else_literal 20% (3) 26% (4) 26% (4) 26% (4) 100% (15)
variable_if_else_template 20% (3) 26% (4) 33% (5) 20% (3) 100% (15)
variable_if_literal 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
variable_if_template 20% (3) 26% (4) 33% (5) 20% (3) 100% (15)

HTJ, HTML::Template::JIT (0.05)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 20% (24) 0% (0) 26% (32) 53% (64) 100% (120)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (24) 0% (0) 16% (8) 33% (16) 100% (48)
mini-language 0% (0) 0% (0) 33% (8) 66% (16) 100% (24)
pure-perl 0% (0) 0% (0) 33% (8) 66% (16) 100% (24)
pure-perl,mini-language 0% (0) 0% (0) 33% (8) 66% (16) 100% (24)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (8) 0% (0) 60% (24) 20% (8) 100% (40)
15 20% (8) 0% (0) 10% (4) 70% (28) 100% (40)
30 20% (8) 0% (0) 10% (4) 70% (28) 100% (40)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (3) 0% (0) 80% (12) 0% (0) 100% (15)
records_loop_template 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
records_loop_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
scalar_variable 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_if_else_literal 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_if_else_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_if_literal 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_if_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 20% (8) 5% (2) 5% (2) 70% (28) 100% (40)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (8) 0% (0) 6% (1) 43% (7) 100% (16)
mini-language 0% (0) 12% (1) 0% (0) 87% (7) 100% (8)
pure-perl 0% (0) 0% (0) 12% (1) 87% (7) 100% (8)
pure-perl,mini-language 0% (0) 12% (1) 0% (0) 87% (7) 100% (8)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (1) 40% (2) 40% (2) 0% (0) 100% (5)
records_loop_template 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
records_loop_value 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
scalar_variable 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
variable_if_else_literal 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
variable_if_else_template 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
variable_if_literal 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
variable_if_template 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)

HTP, HTML::Template::Pro (0.95)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 21% (55) 0% (0) 0% (2) 77% (198) 100% (255)
uncached_string 20% (51) 0% (0) 0% (2) 79% (202) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (102) 0% (0) 0% (0) 50% (102) 100% (204)
mini-language 0% (0) 0% (0) 1% (2) 98% (100) 100% (102)
not-pure-perl 1% (2) 0% (0) 0% (1) 97% (99) 100% (102)
not-pure-perl,mini-language 1% (2) 0% (0) 0% (1) 97% (99) 100% (102)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (34) 0% (0) 0% (0) 80% (136) 100% (170)
15 20% (34) 0% (0) 0% (0) 80% (136) 100% (170)
30 22% (38) 0% (0) 2% (4) 75% (128) 100% (170)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
constant_expression 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
constant_function 26% (8) 0% (0) 3% (1) 70% (21) 100% (30)
constant_if_else_literal 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
constant_if_else_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
constant_if_literal 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
constant_if_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
literal_text 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
records_loop_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
records_loop_value 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
scalar_variable 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
variable_expression 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
variable_function 26% (8) 0% (0) 10% (3) 63% (19) 100% (30)
variable_if_else_literal 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
variable_if_else_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
variable_if_literal 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
variable_if_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 24% (21) 2% (2) 12% (11) 60% (51) 100% (85)
uncached_string 22% (19) 0% (0) 14% (12) 63% (54) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (34) 0% (0) 0% (0) 50% (34) 100% (68)
mini-language 0% (0) 0% (0) 14% (5) 85% (29) 100% (34)
not-pure-perl 8% (3) 2% (1) 26% (9) 61% (21) 100% (34)
not-pure-perl,mini-language 8% (3) 2% (1) 26% (9) 61% (21) 100% (34)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
constant_expression 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
constant_function 60% (6) 0% (0) 20% (2) 20% (2) 100% (10)
constant_if_else_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
constant_if_else_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
constant_if_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
constant_if_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
literal_text 20% (2) 20% (2) 40% (4) 20% (2) 100% (10)
records_loop_template 20% (2) 0% (0) 40% (4) 40% (4) 100% (10)
records_loop_value 20% (2) 0% (0) 40% (4) 40% (4) 100% (10)
scalar_variable 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_expression 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_function 40% (4) 0% (0) 30% (3) 30% (3) 100% (10)
variable_if_else_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_else_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_literal 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
variable_if_template 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)

MoTe, Mojo::Template (0.999924)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (72) 9% (34) 13% (48) 57% (206) 100% (360)
uncached_disk 28% (104) 68% (245) 3% (11) 0% (0) 100% (360)
uncached_string 23% (85) 44% (159) 29% (105) 3% (11) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (227) 21% (92) 9% (41) 16% (72) 100% (432)
embedded-perl 5% (11) 59% (129) 19% (42) 15% (34) 100% (216)
pure-perl 5% (12) 40% (88) 18% (39) 35% (77) 100% (216)
pure-perl,embedded-perl 5% (11) 59% (129) 19% (42) 15% (34) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 23% (85) 47% (170) 15% (57) 13% (48) 100% (360)
15 24% (88) 37% (136) 15% (56) 22% (80) 100% (360)
30 24% (88) 36% (132) 14% (51) 24% (89) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 24% (11) 53% (24) 8% (4) 13% (6) 100% (45)
array_loop_value 20% (9) 44% (20) 13% (6) 22% (10) 100% (45)
array_variable_value 20% (9) 35% (16) 22% (10) 22% (10) 100% (45)
complex_variable_expression 37% (17) 22% (10) 26% (12) 13% (6) 100% (45)
constant_expression 20% (9) 24% (11) 31% (14) 24% (11) 100% (45)
constant_function 20% (9) 44% (20) 13% (6) 22% (10) 100% (45)
constant_if_else_literal 20% (9) 28% (13) 24% (11) 26% (12) 100% (45)
constant_if_else_template 20% (9) 62% (28) 4% (2) 13% (6) 100% (45)
constant_if_literal 20% (9) 40% (18) 17% (8) 22% (10) 100% (45)
constant_if_template 20% (9) 66% (30) 0% (0) 13% (6) 100% (45)
deep_data_structure_value 20% (9) 35% (16) 26% (12) 17% (8) 100% (45)
hash_loop_template 20% (9) 44% (20) 13% (6) 22% (10) 100% (45)
hash_loop_value 20% (9) 40% (18) 17% (8) 22% (10) 100% (45)
hash_variable_value 20% (9) 42% (19) 20% (9) 17% (8) 100% (45)
literal_text 62% (28) 11% (5) 17% (8) 8% (4) 100% (45)
records_loop_template 20% (9) 35% (16) 15% (7) 28% (13) 100% (45)
records_loop_value 20% (9) 35% (16) 17% (8) 26% (12) 100% (45)
scalar_variable 20% (9) 44% (20) 13% (6) 22% (10) 100% (45)
variable_expression 33% (15) 35% (16) 8% (4) 22% (10) 100% (45)
variable_function 20% (9) 35% (16) 20% (9) 24% (11) 100% (45)
variable_if_else_literal 20% (9) 31% (14) 22% (10) 26% (12) 100% (45)
variable_if_else_template 28% (13) 57% (26) 0% (0) 13% (6) 100% (45)
variable_if_literal 20% (9) 48% (22) 8% (4) 22% (10) 100% (45)
variable_if_template 33% (15) 53% (24) 0% (0) 13% (6) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 28% (34) 11% (14) 35% (43) 24% (29) 100% (120)
uncached_disk 55% (66) 30% (37) 11% (14) 2% (3) 100% (120)
uncached_string 21% (26) 22% (27) 44% (53) 11% (14) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (76) 13% (19) 29% (42) 4% (7) 100% (144)
embedded-perl 31% (23) 30% (22) 29% (21) 8% (6) 100% (72)
pure-perl 5% (4) 20% (15) 36% (26) 37% (27) 100% (72)
pure-perl,embedded-perl 31% (23) 30% (22) 29% (21) 8% (6) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
array_loop_value 46% (7) 26% (4) 26% (4) 0% (0) 100% (15)
array_variable_value 33% (5) 26% (4) 26% (4) 13% (2) 100% (15)
complex_variable_expression 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
constant_expression 20% (3) 33% (5) 46% (7) 0% (0) 100% (15)
constant_function 33% (5) 33% (5) 33% (5) 0% (0) 100% (15)
constant_if_else_literal 20% (3) 0% (0) 60% (9) 20% (3) 100% (15)
constant_if_else_template 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
constant_if_literal 20% (3) 0% (0) 53% (8) 26% (4) 100% (15)
constant_if_template 33% (5) 26% (4) 20% (3) 20% (3) 100% (15)
deep_data_structure_value 20% (3) 13% (2) 46% (7) 20% (3) 100% (15)
hash_loop_template 46% (7) 13% (2) 13% (2) 26% (4) 100% (15)
hash_loop_value 46% (7) 13% (2) 40% (6) 0% (0) 100% (15)
hash_variable_value 33% (5) 40% (6) 13% (2) 13% (2) 100% (15)
literal_text 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
records_loop_template 33% (5) 20% (3) 26% (4) 20% (3) 100% (15)
records_loop_value 46% (7) 6% (1) 40% (6) 6% (1) 100% (15)
scalar_variable 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
variable_expression 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
variable_function 33% (5) 26% (4) 26% (4) 13% (2) 100% (15)
variable_if_else_literal 20% (3) 0% (0) 66% (10) 13% (2) 100% (15)
variable_if_else_template 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
variable_if_literal 33% (5) 13% (2) 40% (6) 13% (2) 100% (15)
variable_if_template 33% (5) 26% (4) 20% (3) 20% (3) 100% (15)

NT, NTS::Template (2.1)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 21% (49) 15% (35) 32% (72) 30% (69) 100% (225)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (46) 11% (10) 20% (18) 17% (16) 100% (90)
mini-language 2% (1) 31% (14) 66% (30) 0% (0) 100% (45)
pure-perl 2% (1) 6% (3) 48% (22) 42% (19) 100% (45)
pure-perl,mini-language 2% (1) 17% (8) 4% (2) 75% (34) 100% (45)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (15) 4% (3) 20% (15) 56% (42) 100% (75)
15 20% (15) 22% (17) 38% (29) 18% (14) 100% (75)
30 25% (19) 20% (15) 37% (28) 17% (13) 100% (75)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
array_loop_value 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
constant_if_else_literal 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
constant_if_else_template 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
constant_if_literal 20% (3) 0% (0) 20% (3) 60% (9) 100% (15)
constant_if_template 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
deep_data_structure_value 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
hash_variable_value 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
records_loop_template 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
records_loop_value 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
scalar_variable 20% (3) 40% (6) 20% (3) 20% (3) 100% (15)
variable_if_else_literal 20% (3) 20% (3) 33% (5) 26% (4) 100% (15)
variable_if_else_template 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_if_literal 20% (3) 20% (3) 26% (4) 33% (5) 100% (15)
variable_if_template 20% (3) 53% (8) 6% (1) 20% (3) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 97% (73) 2% (2) 0% (0) 0% (0) 100% (75)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
mini-language 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
pure-perl 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
pure-perl,mini-language 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_literal 80% (4) 20% (1) 0% (0) 0% (0) 100% (5)
constant_if_template 80% (4) 20% (1) 0% (0) 0% (0) 100% (5)
deep_data_structure_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
hash_variable_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
scalar_variable 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)

TAHT, Template::Alloy (1.013) in HTML::Template mode

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (55) 3% (9) 29% (76) 45% (115) 100% (255)
memory_cache 25% (65) 21% (56) 18% (46) 34% (88) 100% (255)
uncached_string 20% (51) 7% (20) 47% (122) 24% (62) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (156) 7% (22) 19% (59) 22% (69) 100% (306)
mini-language 3% (6) 12% (19) 41% (63) 42% (65) 100% (153)
pure-perl 1% (3) 16% (26) 32% (50) 48% (74) 100% (153)
pure-perl,mini-language 3% (6) 11% (18) 47% (72) 37% (57) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (51) 0% (1) 23% (59) 56% (144) 100% (255)
15 21% (55) 14% (36) 37% (95) 27% (69) 100% (255)
30 25% (65) 18% (48) 35% (90) 20% (52) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 20% (9) 17% (8) 42% (19) 20% (9) 100% (45)
constant_expression 20% (9) 24% (11) 35% (16) 20% (9) 100% (45)
constant_function 28% (13) 42% (19) 4% (2) 24% (11) 100% (45)
constant_if_else_literal 20% (9) 0% (0) 28% (13) 51% (23) 100% (45)
constant_if_else_template 20% (9) 0% (0) 20% (9) 60% (27) 100% (45)
constant_if_literal 20% (9) 6% (3) 42% (19) 31% (14) 100% (45)
constant_if_template 20% (9) 0% (0) 51% (23) 28% (13) 100% (45)
literal_text 20% (9) 0% (0) 4% (2) 75% (34) 100% (45)
records_loop_template 20% (9) 20% (9) 31% (14) 28% (13) 100% (45)
records_loop_value 20% (9) 20% (9) 33% (15) 26% (12) 100% (45)
scalar_variable 20% (9) 13% (6) 26% (12) 40% (18) 100% (45)
variable_expression 20% (9) 4% (2) 28% (13) 46% (21) 100% (45)
variable_function 20% (9) 8% (4) 53% (24) 17% (8) 100% (45)
variable_if_else_literal 20% (9) 13% (6) 31% (14) 35% (16) 100% (45)
variable_if_else_template 28% (13) 8% (4) 37% (17) 24% (11) 100% (45)
variable_if_literal 28% (13) 4% (2) 35% (16) 31% (14) 100% (45)
variable_if_template 33% (15) 4% (2) 35% (16) 26% (12) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 24% (21) 58% (50) 11% (10) 4% (4) 100% (85)
memory_cache 67% (57) 30% (26) 2% (2) 0% (0) 100% (85)
uncached_string 50% (43) 36% (31) 8% (7) 4% (4) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 72% (74) 24% (25) 0% (1) 1% (2) 100% (102)
mini-language 35% (18) 60% (31) 0% (0) 3% (2) 100% (51)
pure-perl 37% (19) 56% (29) 1% (1) 3% (2) 100% (51)
pure-perl,mini-language 19% (10) 43% (22) 33% (17) 3% (2) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 53% (8) 33% (5) 13% (2) 0% (0) 100% (15)
constant_expression 40% (6) 53% (8) 6% (1) 0% (0) 100% (15)
constant_function 93% (14) 6% (1) 0% (0) 0% (0) 100% (15)
constant_if_else_literal 20% (3) 73% (11) 6% (1) 0% (0) 100% (15)
constant_if_else_template 40% (6) 53% (8) 6% (1) 0% (0) 100% (15)
constant_if_literal 33% (5) 60% (9) 6% (1) 0% (0) 100% (15)
constant_if_template 66% (10) 26% (4) 6% (1) 0% (0) 100% (15)
literal_text 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)
records_loop_template 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
records_loop_value 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
scalar_variable 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_expression 20% (3) 66% (10) 13% (2) 0% (0) 100% (15)
variable_function 66% (10) 26% (4) 6% (1) 0% (0) 100% (15)
variable_if_else_literal 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_if_else_template 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
variable_if_literal 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_if_template 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)

TATT, Template::Alloy (1.013) in Template::Toolkit mode

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (2) 13% (48) 46% (160) 39% (135) 100% (345)
instance_reuse 65% (226) 22% (78) 11% (41) 0% (0) 100% (345)
uncached_string 21% (73) 15% (53) 28% (99) 34% (120) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 40% (169) 12% (51) 30% (128) 15% (66) 100% (414)
mini-language 21% (45) 5% (12) 41% (85) 31% (65) 100% (207)
pure-perl 23% (48) 30% (64) 16% (35) 28% (60) 100% (207)
pure-perl,mini-language 18% (39) 25% (52) 25% (52) 30% (64) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 19% (67) 16% (58) 22% (76) 41% (144) 100% (345)
15 34% (120) 15% (54) 30% (105) 19% (66) 100% (345)
30 33% (114) 19% (67) 34% (119) 13% (45) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 37% (17) 33% (15) 24% (11) 4% (2) 100% (45)
array_loop_value 40% (18) 31% (14) 24% (11) 4% (2) 100% (45)
array_variable_value 31% (14) 4% (2) 31% (14) 33% (15) 100% (45)
complex_variable_expression 20% (9) 28% (13) 26% (12) 24% (11) 100% (45)
constant_expression 28% (13) 6% (3) 28% (13) 35% (16) 100% (45)
constant_if_else_literal 24% (11) 11% (5) 13% (6) 51% (23) 100% (45)
constant_if_else_template 31% (14) 11% (5) 35% (16) 22% (10) 100% (45)
constant_if_literal 28% (13) 6% (3) 17% (8) 46% (21) 100% (45)
constant_if_template 31% (14) 11% (5) 17% (8) 40% (18) 100% (45)
deep_data_structure_value 6% (3) 26% (12) 53% (24) 13% (6) 100% (45)
hash_loop_template 37% (17) 31% (14) 17% (8) 13% (6) 100% (45)
hash_loop_value 37% (17) 35% (16) 17% (8) 8% (4) 100% (45)
hash_variable_value 31% (14) 4% (2) 28% (13) 35% (16) 100% (45)
literal_text 13% (6) 13% (6) 20% (9) 53% (24) 100% (45)
records_loop_template 37% (17) 28% (13) 28% (13) 4% (2) 100% (45)
records_loop_value 37% (17) 28% (13) 28% (13) 4% (2) 100% (45)
scalar_variable 28% (13) 15% (7) 37% (17) 17% (8) 100% (45)
variable_expression 15% (7) 17% (8) 35% (16) 31% (14) 100% (45)
variable_function 24% (11) 20% (9) 17% (8) 37% (17) 100% (45)
variable_if_else_literal 31% (14) 4% (2) 40% (18) 24% (11) 100% (45)
variable_if_else_template 31% (14) 11% (5) 40% (18) 17% (8) 100% (45)
variable_if_literal 31% (14) 4% (2) 40% (18) 24% (11) 100% (45)
variable_if_template 31% (14) 11% (5) 40% (18) 17% (8) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 39% (45) 45% (52) 4% (5) 11% (13) 100% (115)
instance_reuse 55% (64) 23% (27) 17% (20) 3% (4) 100% (115)
uncached_string 93% (107) 3% (4) 0% (1) 2% (3) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 59% (82) 15% (21) 13% (19) 11% (16) 100% (138)
mini-language 72% (50) 23% (16) 2% (2) 1% (1) 100% (69)
pure-perl 73% (51) 21% (15) 2% (2) 1% (1) 100% (69)
pure-perl,mini-language 47% (33) 44% (31) 4% (3) 2% (2) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
array_loop_value 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
array_variable_value 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
complex_variable_expression 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_expression 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
constant_if_else_literal 53% (8) 40% (6) 0% (0) 6% (1) 100% (15)
constant_if_else_template 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
constant_if_literal 60% (9) 33% (5) 6% (1) 0% (0) 100% (15)
constant_if_template 60% (9) 33% (5) 0% (0) 6% (1) 100% (15)
deep_data_structure_value 40% (6) 40% (6) 6% (1) 13% (2) 100% (15)
hash_loop_template 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
hash_loop_value 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
hash_variable_value 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
literal_text 6% (1) 0% (0) 46% (7) 46% (7) 100% (15)
records_loop_template 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
records_loop_value 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
scalar_variable 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
variable_expression 40% (6) 40% (6) 6% (1) 13% (2) 100% (15)
variable_function 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
variable_if_else_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_else_template 53% (8) 33% (5) 6% (1) 6% (1) 100% (15)
variable_if_literal 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
variable_if_template 73% (11) 13% (2) 13% (2) 0% (0) 100% (15)

TATT_P, Template::Alloy (1.013) in Template::Toolkit mode (compile to perl)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 53% (186) 31% (107) 15% (52) 0% (0) 100% (345)
instance_reuse 20% (71) 37% (131) 37% (131) 3% (12) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 44% (124) 28% (78) 26% (72) 0% (2) 100% (276)
mini-language 26% (37) 50% (69) 20% (28) 2% (4) 100% (138)
pure-perl 28% (40) 48% (67) 22% (31) 0% (0) 100% (138)
pure-perl,mini-language 40% (56) 17% (24) 37% (52) 4% (6) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 17% (41) 36% (83) 46% (106) 0% (0) 100% (230)
15 43% (99) 38% (88) 16% (37) 2% (6) 100% (230)
30 50% (117) 29% (67) 17% (40) 2% (6) 100% (230)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 50% (15) 30% (9) 20% (6) 0% (0) 100% (30)
array_loop_value 50% (15) 30% (9) 20% (6) 0% (0) 100% (30)
array_variable_value 33% (10) 36% (11) 30% (9) 0% (0) 100% (30)
complex_variable_expression 63% (19) 36% (11) 0% (0) 0% (0) 100% (30)
constant_expression 46% (14) 33% (10) 20% (6) 0% (0) 100% (30)
constant_if_else_literal 16% (5) 30% (9) 40% (12) 13% (4) 100% (30)
constant_if_else_template 30% (9) 43% (13) 26% (8) 0% (0) 100% (30)
constant_if_literal 16% (5) 30% (9) 40% (12) 13% (4) 100% (30)
constant_if_template 26% (8) 43% (13) 30% (9) 0% (0) 100% (30)
deep_data_structure_value 66% (20) 20% (6) 13% (4) 0% (0) 100% (30)
hash_loop_template 36% (11) 40% (12) 16% (5) 6% (2) 100% (30)
hash_loop_value 53% (16) 33% (10) 13% (4) 0% (0) 100% (30)
hash_variable_value 23% (7) 46% (14) 30% (9) 0% (0) 100% (30)
literal_text 10% (3) 10% (3) 80% (24) 0% (0) 100% (30)
records_loop_template 50% (15) 30% (9) 13% (4) 6% (2) 100% (30)
records_loop_value 50% (15) 30% (9) 20% (6) 0% (0) 100% (30)
scalar_variable 23% (7) 43% (13) 33% (10) 0% (0) 100% (30)
variable_expression 60% (18) 33% (10) 6% (2) 0% (0) 100% (30)
variable_function 50% (15) 26% (8) 23% (7) 0% (0) 100% (30)
variable_if_else_literal 16% (5) 43% (13) 40% (12) 0% (0) 100% (30)
variable_if_else_template 33% (10) 40% (12) 26% (8) 0% (0) 100% (30)
variable_if_literal 16% (5) 43% (13) 40% (12) 0% (0) 100% (30)
variable_if_template 33% (10) 40% (12) 26% (8) 0% (0) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 61% (71) 30% (35) 3% (4) 4% (5) 100% (115)
instance_reuse 40% (46) 26% (31) 23% (27) 9% (11) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 46% (43) 17% (16) 20% (19) 15% (14) 100% (92)
mini-language 60% (28) 32% (15) 6% (3) 0% (0) 100% (46)
pure-perl 65% (30) 30% (14) 2% (1) 2% (1) 100% (46)
pure-perl,mini-language 34% (16) 45% (21) 17% (8) 2% (1) 100% (46)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 60% (6) 20% (2) 20% (2) 0% (0) 100% (10)
array_loop_value 60% (6) 20% (2) 20% (2) 0% (0) 100% (10)
array_variable_value 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
complex_variable_expression 80% (8) 20% (2) 0% (0) 0% (0) 100% (10)
constant_expression 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
constant_if_else_literal 40% (4) 10% (1) 20% (2) 30% (3) 100% (10)
constant_if_else_template 60% (6) 20% (2) 10% (1) 10% (1) 100% (10)
constant_if_literal 0% (0) 40% (4) 40% (4) 20% (2) 100% (10)
constant_if_template 10% (1) 60% (6) 20% (2) 10% (1) 100% (10)
deep_data_structure_value 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
hash_loop_template 20% (2) 60% (6) 10% (1) 10% (1) 100% (10)
hash_loop_value 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
hash_variable_value 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
literal_text 50% (5) 30% (3) 20% (2) 0% (0) 100% (10)
records_loop_template 30% (3) 50% (5) 10% (1) 10% (1) 100% (10)
records_loop_value 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
scalar_variable 50% (5) 30% (3) 10% (1) 10% (1) 100% (10)
variable_expression 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
variable_function 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
variable_if_else_literal 10% (1) 60% (6) 10% (1) 20% (2) 100% (10)
variable_if_else_template 60% (6) 20% (2) 10% (1) 10% (1) 100% (10)
variable_if_literal 10% (1) 60% (6) 10% (1) 20% (2) 100% (10)
variable_if_template 40% (4) 30% (3) 20% (2) 10% (1) 100% (10)

TATT_PS, Template::Alloy (1.013) in Template::Toolkit mode (compile to perl, using process_simple())

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 17% (59) 55% (191) 24% (85) 2% (10) 100% (345)
instance_reuse 8% (29) 29% (102) 17% (59) 44% (155) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 11% (32) 45% (125) 15% (44) 27% (75) 100% (276)
mini-language 15% (21) 44% (61) 24% (34) 15% (22) 100% (138)
pure-perl 15% (22) 46% (64) 24% (34) 13% (18) 100% (138)
pure-perl,mini-language 9% (13) 31% (43) 23% (32) 36% (50) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (0) 25% (59) 36% (85) 37% (86) 100% (230)
15 16% (37) 50% (117) 16% (37) 16% (39) 100% (230)
30 22% (51) 50% (117) 9% (22) 17% (40) 100% (230)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 30% (9) 43% (13) 13% (4) 13% (4) 100% (30)
array_loop_value 30% (9) 43% (13) 13% (4) 13% (4) 100% (30)
array_variable_value 0% (0) 50% (15) 16% (5) 33% (10) 100% (30)
complex_variable_expression 33% (10) 43% (13) 23% (7) 0% (0) 100% (30)
constant_expression 0% (0) 53% (16) 23% (7) 23% (7) 100% (30)
constant_if_else_literal 0% (0) 30% (9) 16% (5) 53% (16) 100% (30)
constant_if_else_template 13% (4) 36% (11) 26% (8) 23% (7) 100% (30)
constant_if_literal 0% (0) 30% (9) 16% (5) 53% (16) 100% (30)
constant_if_template 0% (0) 46% (14) 30% (9) 23% (7) 100% (30)
deep_data_structure_value 23% (7) 46% (14) 23% (7) 6% (2) 100% (30)
hash_loop_template 26% (8) 50% (15) 16% (5) 6% (2) 100% (30)
hash_loop_value 23% (7) 50% (15) 13% (4) 13% (4) 100% (30)
hash_variable_value 0% (0) 50% (15) 13% (4) 36% (11) 100% (30)
literal_text 0% (0) 10% (3) 30% (9) 60% (18) 100% (30)
records_loop_template 33% (10) 43% (13) 16% (5) 6% (2) 100% (30)
records_loop_value 33% (10) 43% (13) 16% (5) 6% (2) 100% (30)
scalar_variable 0% (0) 50% (15) 20% (6) 30% (9) 100% (30)
variable_expression 26% (8) 43% (13) 23% (7) 6% (2) 100% (30)
variable_function 6% (2) 50% (15) 13% (4) 30% (9) 100% (30)
variable_if_else_literal 0% (0) 40% (12) 26% (8) 33% (10) 100% (30)
variable_if_else_template 10% (3) 43% (13) 23% (7) 23% (7) 100% (30)
variable_if_literal 0% (0) 33% (10) 33% (10) 33% (10) 100% (30)
variable_if_template 3% (1) 46% (14) 30% (9) 20% (6) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 87% (101) 7% (9) 4% (5) 0% (0) 100% (115)
instance_reuse 81% (94) 14% (17) 3% (4) 0% (0) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 76% (70) 15% (14) 8% (8) 0% (0) 100% (92)
mini-language 91% (42) 6% (3) 2% (1) 0% (0) 100% (46)
pure-perl 91% (42) 8% (4) 0% (0) 0% (0) 100% (46)
pure-perl,mini-language 89% (41) 10% (5) 0% (0) 0% (0) 100% (46)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
array_loop_value 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
array_variable_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
complex_variable_expression 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
constant_expression 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_if_else_literal 50% (5) 40% (4) 10% (1) 0% (0) 100% (10)
constant_if_else_template 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
constant_if_literal 40% (4) 50% (5) 10% (1) 0% (0) 100% (10)
constant_if_template 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
deep_data_structure_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_variable_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
literal_text 20% (2) 50% (5) 30% (3) 0% (0) 100% (10)
records_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
records_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
scalar_variable 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_expression 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_function 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_else_literal 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
variable_if_else_template 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_if_literal 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
variable_if_template 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)

TATT_S, Template::Alloy (1.013) in Template::Toolkit mode (using process_simple())

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (0) 8% (30) 21% (74) 69% (241) 100% (345)
instance_reuse 35% (121) 30% (104) 18% (64) 16% (56) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 16% (45) 18% (50) 19% (55) 45% (126) 100% (276)
mini-language 23% (33) 14% (20) 14% (20) 47% (65) 100% (138)
pure-perl 16% (23) 29% (41) 21% (30) 31% (44) 100% (138)
pure-perl,mini-language 14% (20) 16% (23) 23% (33) 44% (62) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 5% (13) 7% (17) 18% (43) 68% (157) 100% (230)
15 17% (41) 29% (68) 17% (40) 35% (81) 100% (230)
30 29% (67) 21% (49) 23% (55) 25% (59) 100% (230)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 43% (13) 20% (6) 13% (4) 23% (7) 100% (30)
array_loop_value 40% (12) 23% (7) 13% (4) 23% (7) 100% (30)
array_variable_value 6% (2) 20% (6) 16% (5) 56% (17) 100% (30)
complex_variable_expression 6% (2) 20% (6) 33% (10) 40% (12) 100% (30)
constant_expression 10% (3) 16% (5) 23% (7) 50% (15) 100% (30)
constant_if_else_literal 10% (3) 20% (6) 13% (4) 56% (17) 100% (30)
constant_if_else_template 26% (8) 6% (2) 23% (7) 43% (13) 100% (30)
constant_if_literal 10% (3) 23% (7) 13% (4) 53% (16) 100% (30)
constant_if_template 26% (8) 6% (2) 23% (7) 43% (13) 100% (30)
deep_data_structure_value 0% (0) 20% (6) 13% (4) 66% (20) 100% (30)
hash_loop_template 30% (9) 26% (8) 20% (6) 23% (7) 100% (30)
hash_loop_value 26% (8) 30% (9) 20% (6) 23% (7) 100% (30)
hash_variable_value 6% (2) 20% (6) 16% (5) 56% (17) 100% (30)
literal_text 0% (0) 0% (0) 23% (7) 76% (23) 100% (30)
records_loop_template 36% (11) 40% (12) 3% (1) 20% (6) 100% (30)
records_loop_value 40% (12) 36% (11) 3% (1) 20% (6) 100% (30)
scalar_variable 6% (2) 20% (6) 20% (6) 53% (16) 100% (30)
variable_expression 0% (0) 20% (6) 26% (8) 53% (16) 100% (30)
variable_function 0% (0) 20% (6) 20% (6) 60% (18) 100% (30)
variable_if_else_literal 13% (4) 20% (6) 23% (7) 43% (13) 100% (30)
variable_if_else_template 26% (8) 6% (2) 36% (11) 30% (9) 100% (30)
variable_if_literal 13% (4) 20% (6) 23% (7) 43% (13) 100% (30)
variable_if_template 23% (7) 10% (3) 36% (11) 30% (9) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 78% (90) 13% (16) 7% (9) 0% (0) 100% (115)
instance_reuse 93% (107) 2% (3) 2% (3) 1% (2) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 80% (74) 10% (10) 8% (8) 0% (0) 100% (92)
mini-language 89% (41) 6% (3) 2% (1) 2% (1) 100% (46)
pure-perl 89% (41) 6% (3) 4% (2) 0% (0) 100% (46)
pure-perl,mini-language 89% (41) 6% (3) 2% (1) 2% (1) 100% (46)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
array_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
array_variable_value 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
complex_variable_expression 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
constant_expression 40% (4) 50% (5) 10% (1) 0% (0) 100% (10)
constant_if_else_literal 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
constant_if_else_template 50% (5) 40% (4) 10% (1) 0% (0) 100% (10)
constant_if_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_if_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
deep_data_structure_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
hash_variable_value 50% (5) 40% (4) 10% (1) 0% (0) 100% (10)
literal_text 0% (0) 0% (0) 80% (8) 20% (2) 100% (10)
records_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
records_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
scalar_variable 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
variable_expression 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_function 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_if_else_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_else_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)

TS, Template::Sandbox (1.04) without caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 26% (97) 21% (77) 28% (102) 23% (84) 100% (360)
uncached_disk 46% (166) 45% (164) 4% (15) 4% (15) 100% (360)
uncached_string 23% (83) 48% (176) 24% (87) 3% (14) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 54% (236) 30% (132) 14% (61) 0% (3) 100% (432)
mini-language 15% (33) 39% (85) 28% (61) 17% (37) 100% (216)
pure-perl 11% (25) 54% (117) 33% (72) 0% (2) 100% (216)
pure-perl,mini-language 24% (52) 38% (83) 4% (10) 32% (71) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 33% (121) 38% (138) 21% (79) 6% (22) 100% (360)
15 31% (113) 36% (133) 18% (65) 13% (49) 100% (360)
30 31% (112) 40% (146) 16% (60) 11% (42) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 42% (19) 13% (6) 26% (12) 17% (8) 100% (45)
array_loop_value 42% (19) 22% (10) 17% (8) 17% (8) 100% (45)
array_variable_value 42% (19) 33% (15) 17% (8) 6% (3) 100% (45)
complex_variable_expression 20% (9) 48% (22) 17% (8) 13% (6) 100% (45)
constant_expression 22% (10) 40% (18) 13% (6) 24% (11) 100% (45)
constant_function 46% (21) 24% (11) 15% (7) 13% (6) 100% (45)
constant_if_else_literal 22% (10) 44% (20) 33% (15) 0% (0) 100% (45)
constant_if_else_template 24% (11) 48% (22) 20% (9) 6% (3) 100% (45)
constant_if_literal 22% (10) 31% (14) 46% (21) 0% (0) 100% (45)
constant_if_template 24% (11) 44% (20) 24% (11) 6% (3) 100% (45)
deep_data_structure_value 26% (12) 46% (21) 17% (8) 8% (4) 100% (45)
hash_loop_template 46% (21) 15% (7) 13% (6) 24% (11) 100% (45)
hash_loop_value 42% (19) 20% (9) 11% (5) 26% (12) 100% (45)
hash_variable_value 24% (11) 44% (20) 24% (11) 6% (3) 100% (45)
literal_text 31% (14) 57% (26) 11% (5) 0% (0) 100% (45)
records_loop_template 37% (17) 26% (12) 22% (10) 13% (6) 100% (45)
records_loop_value 24% (11) 48% (22) 13% (6) 13% (6) 100% (45)
scalar_variable 35% (16) 42% (19) 15% (7) 6% (3) 100% (45)
variable_expression 22% (10) 44% (20) 22% (10) 11% (5) 100% (45)
variable_function 26% (12) 44% (20) 17% (8) 11% (5) 100% (45)
variable_if_else_literal 35% (16) 44% (20) 13% (6) 6% (3) 100% (45)
variable_if_else_template 33% (15) 53% (24) 8% (4) 4% (2) 100% (45)
variable_if_literal 35% (16) 44% (20) 13% (6) 6% (3) 100% (45)
variable_if_template 37% (17) 42% (19) 15% (7) 4% (2) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 21% (26) 38% (46) 15% (18) 25% (30) 100% (120)
uncached_disk 44% (53) 35% (42) 8% (10) 12% (15) 100% (120)
uncached_string 71% (86) 23% (28) 4% (5) 0% (1) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 70% (102) 26% (38) 0% (1) 2% (3) 100% (144)
mini-language 34% (25) 36% (26) 25% (18) 4% (3) 100% (72)
pure-perl 36% (26) 48% (35) 11% (8) 4% (3) 100% (72)
pure-perl,mini-language 16% (12) 23% (17) 8% (6) 51% (37) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 53% (8) 13% (2) 20% (3) 13% (2) 100% (15)
array_loop_value 60% (9) 13% (2) 13% (2) 13% (2) 100% (15)
array_variable_value 66% (10) 20% (3) 6% (1) 6% (1) 100% (15)
complex_variable_expression 66% (10) 20% (3) 0% (0) 13% (2) 100% (15)
constant_expression 26% (4) 33% (5) 6% (1) 33% (5) 100% (15)
constant_function 53% (8) 20% (3) 0% (0) 26% (4) 100% (15)
constant_if_else_literal 20% (3) 40% (6) 33% (5) 6% (1) 100% (15)
constant_if_else_template 40% (6) 33% (5) 13% (2) 13% (2) 100% (15)
constant_if_literal 20% (3) 33% (5) 13% (2) 33% (5) 100% (15)
constant_if_template 40% (6) 40% (6) 6% (1) 13% (2) 100% (15)
deep_data_structure_value 26% (4) 33% (5) 20% (3) 20% (3) 100% (15)
hash_loop_template 66% (10) 13% (2) 13% (2) 6% (1) 100% (15)
hash_loop_value 66% (10) 20% (3) 6% (1) 6% (1) 100% (15)
hash_variable_value 46% (7) 26% (4) 13% (2) 13% (2) 100% (15)
literal_text 33% (5) 53% (8) 13% (2) 0% (0) 100% (15)
records_loop_template 40% (6) 26% (4) 20% (3) 13% (2) 100% (15)
records_loop_value 40% (6) 40% (6) 6% (1) 13% (2) 100% (15)
scalar_variable 46% (7) 46% (7) 0% (0) 6% (1) 100% (15)
variable_expression 60% (9) 26% (4) 0% (0) 13% (2) 100% (15)
variable_function 46% (7) 40% (6) 0% (0) 13% (2) 100% (15)
variable_if_else_literal 46% (7) 40% (6) 6% (1) 6% (1) 100% (15)
variable_if_else_template 60% (9) 33% (5) 0% (0) 6% (1) 100% (15)
variable_if_literal 20% (3) 66% (10) 6% (1) 6% (1) 100% (15)
variable_if_template 53% (8) 40% (6) 0% (0) 6% (1) 100% (15)

TS_CF, Template::Sandbox (1.04) with Cache::CacheFactory (1.10) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 30% (108) 28% (104) 22% (81) 18% (67) 100% (360)
memory_cache 2% (8) 22% (80) 21% (76) 54% (196) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 25% (73) 14% (41) 18% (53) 42% (121) 100% (288)
mini-language 3% (5) 33% (48) 27% (39) 36% (52) 100% (144)
pure-perl 11% (16) 30% (44) 30% (44) 27% (40) 100% (144)
pure-perl,mini-language 15% (22) 35% (51) 14% (21) 34% (50) 100% (144)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 25% (62) 36% (88) 11% (28) 25% (62) 100% (240)
15 11% (27) 22% (55) 29% (70) 36% (88) 100% (240)
30 11% (27) 17% (41) 24% (59) 47% (113) 100% (240)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 10% (3) 13% (4) 26% (8) 50% (15) 100% (30)
array_loop_value 10% (3) 13% (4) 26% (8) 50% (15) 100% (30)
array_variable_value 16% (5) 13% (4) 26% (8) 43% (13) 100% (30)
complex_variable_expression 16% (5) 6% (2) 10% (3) 66% (20) 100% (30)
constant_expression 16% (5) 13% (4) 13% (4) 56% (17) 100% (30)
constant_function 23% (7) 13% (4) 13% (4) 50% (15) 100% (30)
constant_if_else_literal 16% (5) 16% (5) 36% (11) 30% (9) 100% (30)
constant_if_else_template 16% (5) 13% (4) 26% (8) 43% (13) 100% (30)
constant_if_literal 16% (5) 13% (4) 13% (4) 56% (17) 100% (30)
constant_if_template 16% (5) 13% (4) 13% (4) 56% (17) 100% (30)
deep_data_structure_value 10% (3) 46% (14) 6% (2) 36% (11) 100% (30)
hash_loop_template 10% (3) 6% (2) 33% (10) 50% (15) 100% (30)
hash_loop_value 10% (3) 6% (2) 33% (10) 50% (15) 100% (30)
hash_variable_value 10% (3) 40% (12) 40% (12) 10% (3) 100% (30)
literal_text 30% (9) 60% (18) 0% (0) 10% (3) 100% (30)
records_loop_template 10% (3) 20% (6) 40% (12) 30% (9) 100% (30)
records_loop_value 10% (3) 26% (8) 33% (10) 30% (9) 100% (30)
scalar_variable 36% (11) 40% (12) 13% (4) 10% (3) 100% (30)
variable_expression 16% (5) 13% (4) 26% (8) 43% (13) 100% (30)
variable_function 16% (5) 20% (6) 20% (6) 43% (13) 100% (30)
variable_if_else_literal 16% (5) 53% (16) 20% (6) 10% (3) 100% (30)
variable_if_else_template 16% (5) 46% (14) 16% (5) 20% (6) 100% (30)
variable_if_literal 16% (5) 56% (17) 16% (5) 10% (3) 100% (30)
variable_if_template 16% (5) 46% (14) 16% (5) 20% (6) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 2% (3) 1% (2) 2% (3) 93% (112) 100% (120)
memory_cache 15% (18) 20% (24) 20% (24) 45% (54) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 13% (13) 7% (7) 6% (6) 72% (70) 100% (96)
mini-language 6% (3) 12% (6) 14% (7) 66% (32) 100% (48)
pure-perl 4% (2) 14% (7) 14% (7) 66% (32) 100% (48)
pure-perl,mini-language 6% (3) 12% (6) 14% (7) 66% (32) 100% (48)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 0% (0) 20% (2) 0% (0) 80% (8) 100% (10)
array_loop_value 50% (5) 0% (0) 0% (0) 50% (5) 100% (10)
array_variable_value 0% (0) 0% (0) 20% (2) 80% (8) 100% (10)
complex_variable_expression 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
constant_expression 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
constant_function 20% (2) 20% (2) 20% (2) 40% (4) 100% (10)
constant_if_else_literal 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
constant_if_else_template 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
constant_if_literal 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
constant_if_template 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
deep_data_structure_value 0% (0) 40% (4) 0% (0) 60% (6) 100% (10)
hash_loop_template 30% (3) 20% (2) 0% (0) 50% (5) 100% (10)
hash_loop_value 50% (5) 0% (0) 0% (0) 50% (5) 100% (10)
hash_variable_value 0% (0) 40% (4) 0% (0) 60% (6) 100% (10)
literal_text 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
records_loop_template 10% (1) 40% (4) 10% (1) 40% (4) 100% (10)
records_loop_value 10% (1) 40% (4) 10% (1) 40% (4) 100% (10)
scalar_variable 0% (0) 40% (4) 0% (0) 60% (6) 100% (10)
variable_expression 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
variable_function 0% (0) 0% (0) 10% (1) 90% (9) 100% (10)
variable_if_else_literal 0% (0) 0% (0) 40% (4) 60% (6) 100% (10)
variable_if_else_template 0% (0) 0% (0) 40% (4) 60% (6) 100% (10)
variable_if_literal 0% (0) 0% (0) 40% (4) 60% (6) 100% (10)
variable_if_template 0% (0) 0% (0) 40% (4) 60% (6) 100% (10)

TS_CHI, Template::Sandbox (1.04) with CHI (0.35) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (0) 21% (77) 18% (67) 60% (216) 100% (360)
memory_cache 57% (206) 28% (104) 11% (40) 2% (10) 100% (360)
shared_memory_cache 100% (360) 0% (0) 0% (0) 0% (0) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 55% (240) 10% (45) 8% (35) 25% (112) 100% (432)
mini-language 53% (115) 19% (43) 8% (19) 18% (39) 100% (216)
pure-perl 44% (96) 23% (50) 13% (29) 18% (41) 100% (216)
pure-perl,mini-language 53% (115) 19% (43) 11% (24) 15% (34) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 53% (194) 26% (97) 12% (45) 6% (24) 100% (360)
15 51% (186) 11% (43) 11% (42) 24% (89) 100% (360)
30 51% (186) 11% (41) 5% (20) 31% (113) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 53% (24) 8% (4) 15% (7) 22% (10) 100% (45)
array_loop_value 53% (24) 8% (4) 17% (8) 20% (9) 100% (45)
array_variable_value 53% (24) 17% (8) 11% (5) 17% (8) 100% (45)
complex_variable_expression 44% (20) 22% (10) 8% (4) 24% (11) 100% (45)
constant_expression 40% (18) 13% (6) 13% (6) 33% (15) 100% (45)
constant_function 40% (18) 8% (4) 17% (8) 33% (15) 100% (45)
constant_if_else_literal 40% (18) 26% (12) 17% (8) 15% (7) 100% (45)
constant_if_else_template 44% (20) 31% (14) 8% (4) 15% (7) 100% (45)
constant_if_literal 40% (18) 17% (8) 15% (7) 26% (12) 100% (45)
constant_if_template 40% (18) 26% (12) 8% (4) 24% (11) 100% (45)
deep_data_structure_value 62% (28) 13% (6) 0% (0) 24% (11) 100% (45)
hash_loop_template 53% (24) 13% (6) 8% (4) 24% (11) 100% (45)
hash_loop_value 53% (24) 13% (6) 8% (4) 24% (11) 100% (45)
hash_variable_value 62% (28) 11% (5) 6% (3) 20% (9) 100% (45)
literal_text 66% (30) 22% (10) 4% (2) 6% (3) 100% (45)
records_loop_template 48% (22) 20% (9) 6% (3) 24% (11) 100% (45)
records_loop_value 48% (22) 20% (9) 6% (3) 24% (11) 100% (45)
scalar_variable 66% (30) 8% (4) 17% (8) 6% (3) 100% (45)
variable_expression 40% (18) 31% (14) 4% (2) 24% (11) 100% (45)
variable_function 40% (18) 31% (14) 20% (9) 8% (4) 100% (45)
variable_if_else_literal 66% (30) 8% (4) 8% (4) 15% (7) 100% (45)
variable_if_else_template 66% (30) 8% (4) 0% (0) 24% (11) 100% (45)
variable_if_literal 66% (30) 8% (4) 8% (4) 15% (7) 100% (45)
variable_if_template 66% (30) 8% (4) 0% (0) 24% (11) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (24) 3% (4) 42% (51) 34% (41) 100% (120)
memory_cache 55% (67) 10% (12) 26% (32) 7% (9) 100% (120)
shared_memory_cache 12% (15) 0% (0) 0% (0) 87% (105) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 43% (63) 3% (5) 15% (23) 36% (53) 100% (144)
mini-language 20% (15) 4% (3) 29% (21) 45% (33) 100% (72)
pure-perl 18% (13) 5% (4) 34% (25) 41% (30) 100% (72)
pure-perl,mini-language 20% (15) 5% (4) 19% (14) 54% (39) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 40% (6) 0% (0) 13% (2) 46% (7) 100% (15)
array_loop_value 40% (6) 0% (0) 13% (2) 46% (7) 100% (15)
array_variable_value 26% (4) 13% (2) 20% (3) 40% (6) 100% (15)
complex_variable_expression 13% (2) 0% (0) 33% (5) 53% (8) 100% (15)
constant_expression 46% (7) 0% (0) 13% (2) 40% (6) 100% (15)
constant_function 46% (7) 13% (2) 13% (2) 26% (4) 100% (15)
constant_if_else_literal 13% (2) 0% (0) 26% (4) 60% (9) 100% (15)
constant_if_else_template 13% (2) 0% (0) 33% (5) 53% (8) 100% (15)
constant_if_literal 13% (2) 0% (0) 13% (2) 73% (11) 100% (15)
constant_if_template 13% (2) 0% (0) 40% (6) 46% (7) 100% (15)
deep_data_structure_value 40% (6) 0% (0) 20% (3) 40% (6) 100% (15)
hash_loop_template 26% (4) 13% (2) 13% (2) 46% (7) 100% (15)
hash_loop_value 6% (1) 0% (0) 26% (4) 66% (10) 100% (15)
hash_variable_value 40% (6) 0% (0) 20% (3) 40% (6) 100% (15)
literal_text 73% (11) 6% (1) 20% (3) 0% (0) 100% (15)
records_loop_template 13% (2) 26% (4) 13% (2) 46% (7) 100% (15)
records_loop_value 13% (2) 26% (4) 13% (2) 46% (7) 100% (15)
scalar_variable 40% (6) 0% (0) 26% (4) 33% (5) 100% (15)
variable_expression 13% (2) 0% (0) 33% (5) 53% (8) 100% (15)
variable_function 13% (2) 6% (1) 46% (7) 33% (5) 100% (15)
variable_if_else_literal 40% (6) 0% (0) 20% (3) 40% (6) 100% (15)
variable_if_else_template 40% (6) 0% (0) 26% (4) 33% (5) 100% (15)
variable_if_literal 40% (6) 0% (0) 26% (4) 33% (5) 100% (15)
variable_if_template 40% (6) 0% (0) 26% (4) 33% (5) 100% (15)

TS_FMM, Template::Sandbox (1.04) with Cache::FastMmap (1.35) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
shared_memory_cache 0% (0) 0% (0) 0% (0) 100% (360) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 0% (0) 0% (0) 0% (0) 100% (144) 100% (144)
mini-language 0% (0) 0% (0) 0% (0) 100% (72) 100% (72)
pure-perl 0% (0) 0% (0) 0% (0) 100% (72) 100% (72)
pure-perl,mini-language 0% (0) 0% (0) 0% (0) 100% (72) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (0) 0% (0) 0% (0) 100% (120) 100% (120)
15 0% (0) 0% (0) 0% (0) 100% (120) 100% (120)
30 0% (0) 0% (0) 0% (0) 100% (120) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
array_loop_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
array_variable_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
complex_variable_expression 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_expression 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_function 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_else_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_else_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
deep_data_structure_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_loop_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_loop_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_variable_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
literal_text 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
records_loop_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
records_loop_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
scalar_variable 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_expression 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_function 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_if_else_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_if_else_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_if_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
variable_if_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
shared_memory_cache 95% (115) 0% (0) 0% (0) 4% (5) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 95% (46) 0% (0) 0% (0) 4% (2) 100% (48)
mini-language 95% (23) 0% (0) 0% (0) 4% (1) 100% (24)
pure-perl 95% (23) 0% (0) 0% (0) 4% (1) 100% (24)
pure-perl,mini-language 95% (23) 0% (0) 0% (0) 4% (1) 100% (24)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_variable_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
complex_variable_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_function 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
deep_data_structure_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
hash_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
hash_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
hash_variable_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
literal_text 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
records_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
scalar_variable 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_function 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)

TT, Template::Toolkit (2.22)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 94% (325) 5% (20) 0% (0) 0% (0) 100% (345)
instance_reuse 84% (290) 13% (46) 0% (3) 1% (6) 100% (345)
uncached_string 95% (331) 2% (10) 1% (4) 0% (0) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 94% (391) 5% (22) 0% (1) 0% (0) 100% (414)
mini-language 94% (195) 5% (12) 0% (0) 0% (0) 100% (207)
pure-perl 89% (185) 8% (18) 1% (4) 0% (0) 100% (207)
pure-perl,mini-language 84% (175) 11% (24) 0% (2) 2% (6) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 99% (344) 0% (1) 0% (0) 0% (0) 100% (345)
15 91% (315) 7% (25) 0% (2) 0% (3) 100% (345)
30 83% (287) 14% (50) 1% (5) 0% (3) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
array_loop_value 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)
array_variable_value 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
complex_variable_expression 82% (37) 13% (6) 0% (0) 4% (2) 100% (45)
constant_expression 75% (34) 15% (7) 4% (2) 4% (2) 100% (45)
constant_if_else_literal 93% (42) 6% (3) 0% (0) 0% (0) 100% (45)
constant_if_else_template 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
constant_if_literal 93% (42) 6% (3) 0% (0) 0% (0) 100% (45)
constant_if_template 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
deep_data_structure_value 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
hash_loop_template 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
hash_loop_value 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
hash_variable_value 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
literal_text 75% (34) 15% (7) 8% (4) 0% (0) 100% (45)
records_loop_template 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
records_loop_value 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
scalar_variable 97% (44) 2% (1) 0% (0) 0% (0) 100% (45)
variable_expression 82% (37) 13% (6) 0% (0) 4% (2) 100% (45)
variable_function 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
variable_if_else_literal 86% (39) 13% (6) 0% (0) 0% (0) 100% (45)
variable_if_else_template 77% (35) 22% (10) 0% (0) 0% (0) 100% (45)
variable_if_literal 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
variable_if_template 91% (41) 6% (3) 2% (1) 0% (0) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (24) 15% (18) 58% (67) 5% (6) 100% (115)
instance_reuse 27% (32) 30% (35) 14% (17) 26% (31) 100% (115)
uncached_string 31% (36) 35% (41) 20% (24) 12% (14) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (73) 30% (42) 14% (20) 2% (3) 100% (138)
mini-language 10% (7) 27% (19) 57% (40) 4% (3) 100% (69)
pure-perl 13% (9) 39% (27) 36% (25) 11% (8) 100% (69)
pure-perl,mini-language 4% (3) 8% (6) 33% (23) 53% (37) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 26% (4) 46% (7) 13% (2) 13% (2) 100% (15)
array_loop_value 26% (4) 46% (7) 13% (2) 13% (2) 100% (15)
array_variable_value 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
complex_variable_expression 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
constant_expression 6% (1) 20% (3) 40% (6) 33% (5) 100% (15)
constant_if_else_literal 13% (2) 13% (2) 40% (6) 33% (5) 100% (15)
constant_if_else_template 20% (3) 13% (2) 40% (6) 26% (4) 100% (15)
constant_if_literal 13% (2) 13% (2) 40% (6) 33% (5) 100% (15)
constant_if_template 13% (2) 13% (2) 60% (9) 13% (2) 100% (15)
deep_data_structure_value 46% (7) 20% (3) 26% (4) 6% (1) 100% (15)
hash_loop_template 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
hash_loop_value 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
hash_variable_value 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
literal_text 66% (10) 13% (2) 13% (2) 6% (1) 100% (15)
records_loop_template 40% (6) 33% (5) 20% (3) 6% (1) 100% (15)
records_loop_value 40% (6) 40% (6) 13% (2) 6% (1) 100% (15)
scalar_variable 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
variable_expression 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
variable_function 20% (3) 33% (5) 26% (4) 20% (3) 100% (15)
variable_if_else_literal 20% (3) 20% (3) 40% (6) 20% (3) 100% (15)
variable_if_else_template 13% (2) 26% (4) 46% (7) 13% (2) 100% (15)
variable_if_literal 20% (3) 20% (3) 46% (7) 13% (2) 100% (15)
variable_if_template 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)

TT_X, Template::Toolkit (2.22) with Stash::XS (no version number)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 17% (60) 40% (138) 4% (15) 38% (132) 100% (345)
instance_reuse 11% (41) 43% (150) 16% (57) 28% (97) 100% (345)
uncached_string 57% (199) 41% (144) 0% (2) 0% (0) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 19% (79) 40% (168) 9% (40) 30% (127) 100% (414)
mini-language 38% (79) 36% (76) 14% (30) 10% (22) 100% (207)
not-pure-perl 34% (71) 45% (94) 0% (2) 19% (40) 100% (207)
not-pure-perl,mini-language 34% (71) 45% (94) 0% (2) 19% (40) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 42% (147) 40% (140) 1% (6) 15% (52) 100% (345)
15 24% (86) 43% (150) 8% (30) 22% (79) 100% (345)
30 19% (67) 41% (142) 11% (38) 28% (98) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 44% (20) 40% (18) 6% (3) 8% (4) 100% (45)
array_loop_value 35% (16) 46% (21) 6% (3) 11% (5) 100% (45)
array_variable_value 20% (9) 46% (21) 11% (5) 22% (10) 100% (45)
complex_variable_expression 33% (15) 46% (21) 4% (2) 15% (7) 100% (45)
constant_expression 24% (11) 48% (22) 8% (4) 17% (8) 100% (45)
constant_if_else_literal 22% (10) 48% (22) 6% (3) 22% (10) 100% (45)
constant_if_else_template 28% (13) 31% (14) 15% (7) 24% (11) 100% (45)
constant_if_literal 20% (9) 57% (26) 0% (0) 22% (10) 100% (45)
constant_if_template 28% (13) 37% (17) 8% (4) 24% (11) 100% (45)
deep_data_structure_value 22% (10) 44% (20) 13% (6) 20% (9) 100% (45)
hash_loop_template 35% (16) 17% (8) 6% (3) 40% (18) 100% (45)
hash_loop_value 31% (14) 20% (9) 2% (1) 46% (21) 100% (45)
hash_variable_value 6% (3) 62% (28) 11% (5) 20% (9) 100% (45)
literal_text 35% (16) 40% (18) 4% (2) 20% (9) 100% (45)
records_loop_template 28% (13) 51% (23) 6% (3) 13% (6) 100% (45)
records_loop_value 28% (13) 51% (23) 6% (3) 13% (6) 100% (45)
scalar_variable 40% (18) 33% (15) 8% (4) 17% (8) 100% (45)
variable_expression 24% (11) 48% (22) 4% (2) 22% (10) 100% (45)
variable_function 35% (16) 28% (13) 6% (3) 28% (13) 100% (45)
variable_if_else_literal 22% (10) 48% (22) 4% (2) 24% (11) 100% (45)
variable_if_else_template 28% (13) 35% (16) 8% (4) 26% (12) 100% (45)
variable_if_literal 33% (15) 40% (18) 4% (2) 22% (10) 100% (45)
variable_if_template 35% (16) 33% (15) 6% (3) 24% (11) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 9% (11) 53% (62) 21% (25) 14% (17) 100% (115)
instance_reuse 10% (12) 26% (31) 16% (19) 46% (53) 100% (115)
uncached_string 64% (74) 26% (31) 8% (10) 0% (0) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 24% (34) 38% (53) 15% (21) 21% (30) 100% (138)
mini-language 7% (5) 15% (11) 36% (25) 40% (28) 100% (69)
not-pure-perl 42% (29) 43% (30) 5% (4) 8% (6) 100% (69)
not-pure-perl,mini-language 42% (29) 43% (30) 5% (4) 8% (6) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 40% (6) 46% (7) 13% (2) 0% (0) 100% (15)
array_loop_value 40% (6) 46% (7) 13% (2) 0% (0) 100% (15)
array_variable_value 6% (1) 53% (8) 20% (3) 20% (3) 100% (15)
complex_variable_expression 20% (3) 40% (6) 26% (4) 13% (2) 100% (15)
constant_expression 26% (4) 26% (4) 20% (3) 26% (4) 100% (15)
constant_if_else_literal 26% (4) 20% (3) 20% (3) 33% (5) 100% (15)
constant_if_else_template 20% (3) 26% (4) 6% (1) 46% (7) 100% (15)
constant_if_literal 26% (4) 26% (4) 20% (3) 26% (4) 100% (15)
constant_if_template 20% (3) 33% (5) 20% (3) 26% (4) 100% (15)
deep_data_structure_value 20% (3) 46% (7) 13% (2) 20% (3) 100% (15)
hash_loop_template 60% (9) 13% (2) 20% (3) 6% (1) 100% (15)
hash_loop_value 60% (9) 20% (3) 13% (2) 6% (1) 100% (15)
hash_variable_value 6% (1) 40% (6) 26% (4) 26% (4) 100% (15)
literal_text 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
records_loop_template 33% (5) 46% (7) 20% (3) 0% (0) 100% (15)
records_loop_value 46% (7) 33% (5) 20% (3) 0% (0) 100% (15)
scalar_variable 20% (3) 33% (5) 26% (4) 20% (3) 100% (15)
variable_expression 20% (3) 40% (6) 26% (4) 13% (2) 100% (15)
variable_function 33% (5) 33% (5) 13% (2) 20% (3) 100% (15)
variable_if_else_literal 20% (3) 33% (5) 0% (0) 46% (7) 100% (15)
variable_if_else_template 26% (4) 46% (7) 0% (0) 26% (4) 100% (15)
variable_if_literal 20% (3) 33% (5) 0% (0) 46% (7) 100% (15)
variable_if_template 20% (3) 46% (7) 0% (0) 33% (5) 100% (15)

TT_XCET, Template::Toolkit (2.22) with Stash::XS (no version number) and Template::Parser::CET (0.05)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 53% (183) 46% (160) 0% (1) 0% (1) 100% (345)
instance_reuse 46% (162) 35% (124) 15% (53) 1% (6) 100% (345)
uncached_string 2% (8) 70% (243) 7% (25) 20% (69) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 17% (74) 59% (248) 4% (17) 18% (75) 100% (414)
mini-language 34% (71) 43% (91) 21% (44) 0% (1) 100% (207)
not-pure-perl 50% (104) 45% (94) 4% (9) 0% (0) 100% (207)
not-pure-perl,mini-language 50% (104) 45% (94) 4% (9) 0% (0) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 49% (170) 40% (139) 2% (8) 8% (28) 100% (345)
15 30% (104) 54% (188) 8% (30) 6% (23) 100% (345)
30 22% (79) 57% (200) 11% (41) 7% (25) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 35% (16) 51% (23) 4% (2) 8% (4) 100% (45)
array_loop_value 35% (16) 53% (24) 4% (2) 6% (3) 100% (45)
array_variable_value 31% (14) 40% (18) 22% (10) 6% (3) 100% (45)
complex_variable_expression 44% (20) 40% (18) 8% (4) 6% (3) 100% (45)
constant_expression 46% (21) 42% (19) 4% (2) 6% (3) 100% (45)
constant_if_else_literal 37% (17) 55% (25) 0% (0) 6% (3) 100% (45)
constant_if_else_template 22% (10) 64% (29) 4% (2) 8% (4) 100% (45)
constant_if_literal 40% (18) 53% (24) 0% (0) 6% (3) 100% (45)
constant_if_template 28% (13) 57% (26) 6% (3) 6% (3) 100% (45)
deep_data_structure_value 20% (9) 53% (24) 17% (8) 8% (4) 100% (45)
hash_loop_template 37% (17) 48% (22) 6% (3) 6% (3) 100% (45)
hash_loop_value 31% (14) 55% (25) 6% (3) 6% (3) 100% (45)
hash_variable_value 33% (15) 37% (17) 22% (10) 6% (3) 100% (45)
literal_text 37% (17) 44% (20) 8% (4) 8% (4) 100% (45)
records_loop_template 42% (19) 46% (21) 4% (2) 6% (3) 100% (45)
records_loop_value 42% (19) 46% (21) 4% (2) 6% (3) 100% (45)
scalar_variable 26% (12) 57% (26) 6% (3) 8% (4) 100% (45)
variable_expression 40% (18) 44% (20) 8% (4) 6% (3) 100% (45)
variable_function 40% (18) 44% (20) 8% (4) 6% (3) 100% (45)
variable_if_else_literal 31% (14) 57% (26) 4% (2) 6% (3) 100% (45)
variable_if_else_template 28% (13) 55% (25) 8% (4) 6% (3) 100% (45)
variable_if_literal 24% (11) 62% (28) 4% (2) 8% (4) 100% (45)
variable_if_template 26% (12) 57% (26) 6% (3) 8% (4) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 6% (7) 26% (31) 16% (19) 50% (58) 100% (115)
instance_reuse 26% (30) 28% (33) 28% (33) 16% (19) 100% (115)
uncached_string 6% (7) 33% (39) 14% (17) 45% (52) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 5% (8) 30% (42) 18% (25) 45% (63) 100% (138)
mini-language 2% (2) 1% (1) 34% (24) 60% (42) 100% (69)
not-pure-perl 24% (17) 43% (30) 14% (10) 17% (12) 100% (69)
not-pure-perl,mini-language 24% (17) 43% (30) 14% (10) 17% (12) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 26% (4) 46% (7) 20% (3) 6% (1) 100% (15)
array_loop_value 26% (4) 20% (3) 20% (3) 33% (5) 100% (15)
array_variable_value 13% (2) 6% (1) 26% (4) 53% (8) 100% (15)
complex_variable_expression 13% (2) 20% (3) 26% (4) 40% (6) 100% (15)
constant_expression 6% (1) 20% (3) 40% (6) 33% (5) 100% (15)
constant_if_else_literal 6% (1) 20% (3) 26% (4) 46% (7) 100% (15)
constant_if_else_template 0% (0) 40% (6) 13% (2) 46% (7) 100% (15)
constant_if_literal 13% (2) 26% (4) 33% (5) 26% (4) 100% (15)
constant_if_template 0% (0) 40% (6) 13% (2) 46% (7) 100% (15)
deep_data_structure_value 13% (2) 33% (5) 26% (4) 26% (4) 100% (15)
hash_loop_template 26% (4) 33% (5) 20% (3) 20% (3) 100% (15)
hash_loop_value 26% (4) 40% (6) 13% (2) 20% (3) 100% (15)
hash_variable_value 0% (0) 20% (3) 20% (3) 60% (9) 100% (15)
literal_text 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
records_loop_template 13% (2) 46% (7) 26% (4) 13% (2) 100% (15)
records_loop_value 13% (2) 46% (7) 26% (4) 13% (2) 100% (15)
scalar_variable 0% (0) 33% (5) 6% (1) 60% (9) 100% (15)
variable_expression 13% (2) 20% (3) 26% (4) 40% (6) 100% (15)
variable_function 13% (2) 20% (3) 26% (4) 40% (6) 100% (15)
variable_if_else_literal 0% (0) 20% (3) 13% (2) 66% (10) 100% (15)
variable_if_else_template 0% (0) 33% (5) 0% (0) 66% (10) 100% (15)
variable_if_literal 0% (0) 20% (3) 13% (2) 66% (10) 100% (15)
variable_if_template 13% (2) 40% (6) 13% (2) 33% (5) 100% (15)

TTiny, Template::Tiny (0.11)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_string 44% (86) 12% (25) 0% (0) 43% (84) 100% (195)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 65% (51) 7% (6) 0% (0) 26% (21) 100% (78)
mini-language 30% (12) 15% (6) 0% (0) 53% (21) 100% (39)
pure-perl 38% (15) 7% (3) 0% (0) 53% (21) 100% (39)
pure-perl,mini-language 20% (8) 25% (10) 0% (0) 53% (21) 100% (39)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (13) 0% (0) 0% (0) 80% (52) 100% (65)
15 46% (30) 29% (19) 0% (0) 24% (16) 100% (65)
30 66% (43) 9% (6) 0% (0) 24% (16) 100% (65)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 53% (8) 20% (3) 0% (0) 26% (4) 100% (15)
array_loop_value 46% (7) 26% (4) 0% (0) 26% (4) 100% (15)
array_variable_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
deep_data_structure_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
hash_variable_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
literal_text 46% (7) 26% (4) 0% (0) 26% (4) 100% (15)
records_loop_template 40% (6) 33% (5) 0% (0) 26% (4) 100% (15)
records_loop_value 46% (7) 26% (4) 0% (0) 26% (4) 100% (15)
scalar_variable 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
variable_if_else_literal 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_if_else_template 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_if_literal 53% (8) 20% (3) 0% (0) 26% (4) 100% (15)
variable_if_template 60% (9) 13% (2) 0% (0) 26% (4) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_string 93% (61) 4% (3) 1% (1) 0% (0) 100% (65)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 96% (25) 3% (1) 0% (0) 0% (0) 100% (26)
mini-language 92% (12) 7% (1) 0% (0) 0% (0) 100% (13)
pure-perl 92% (12) 7% (1) 0% (0) 0% (0) 100% (13)
pure-perl,mini-language 92% (12) 0% (0) 7% (1) 0% (0) 100% (13)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_variable_value 20% (1) 60% (3) 20% (1) 0% (0) 100% (5)
deep_data_structure_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
hash_variable_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
literal_text 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
scalar_variable 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)

TeCS, Text::ClearSilver (0.10.5.4)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 23% (79) 13% (43) 48% (160) 14% (48) 100% (330)
uncached_disk 22% (74) 12% (42) 18% (61) 46% (153) 100% (330)
uncached_string 21% (72) 0% (0) 14% (49) 63% (209) 100% (330)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (198) 6% (24) 10% (40) 33% (134) 100% (396)
mini-language 1% (3) 9% (19) 10% (20) 78% (156) 100% (198)
not-pure-perl 6% (12) 10% (21) 53% (105) 30% (60) 100% (198)
not-pure-perl,mini-language 6% (12) 10% (21) 53% (105) 30% (60) 100% (198)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 22% (75) 13% (45) 25% (85) 37% (125) 100% (330)
15 22% (75) 6% (20) 29% (96) 42% (139) 100% (330)
30 22% (75) 6% (20) 26% (89) 44% (146) 100% (330)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (9) 0% (0) 20% (9) 60% (27) 100% (45)
array_loop_value 20% (9) 0% (0) 20% (9) 60% (27) 100% (45)
array_variable_value 20% (9) 4% (2) 17% (8) 57% (26) 100% (45)
complex_variable_expression 20% (9) 13% (6) 40% (18) 26% (12) 100% (45)
constant_expression 20% (9) 17% (8) 37% (17) 24% (11) 100% (45)
constant_function 62% (28) 6% (3) 11% (5) 20% (9) 100% (45)
constant_if_else_literal 24% (11) 26% (12) 22% (10) 26% (12) 100% (45)
constant_if_else_template 24% (11) 17% (8) 28% (13) 28% (13) 100% (45)
constant_if_literal 20% (9) 22% (10) 31% (14) 26% (12) 100% (45)
constant_if_template 20% (9) 17% (8) 31% (14) 31% (14) 100% (45)
deep_data_structure_value 20% (9) 0% (0) 22% (10) 57% (26) 100% (45)
hash_variable_value 20% (9) 4% (2) 17% (8) 57% (26) 100% (45)
literal_text 20% (9) 13% (6) 26% (12) 40% (18) 100% (45)
records_loop_template 20% (9) 0% (0) 33% (15) 46% (21) 100% (45)
records_loop_value 20% (9) 0% (0) 33% (15) 46% (21) 100% (45)
scalar_variable 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)
variable_expression 20% (9) 17% (8) 37% (17) 24% (11) 100% (45)
variable_function 28% (13) 4% (2) 13% (6) 53% (24) 100% (45)
variable_if_else_literal 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)
variable_if_else_template 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)
variable_if_literal 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)
variable_if_template 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 34% (38) 10% (11) 14% (16) 40% (45) 100% (110)
uncached_disk 20% (22) 29% (32) 10% (12) 40% (44) 100% (110)
uncached_string 20% (22) 0% (0) 27% (30) 52% (58) 100% (110)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (66) 3% (4) 4% (6) 42% (56) 100% (132)
mini-language 3% (2) 1% (1) 27% (18) 68% (45) 100% (66)
not-pure-perl 10% (7) 28% (19) 25% (17) 34% (23) 100% (66)
not-pure-perl,mini-language 10% (7) 28% (19) 25% (17) 34% (23) 100% (66)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
array_loop_value 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
array_variable_value 20% (3) 0% (0) 20% (3) 60% (9) 100% (15)
complex_variable_expression 20% (3) 13% (2) 33% (5) 33% (5) 100% (15)
constant_expression 20% (3) 26% (4) 33% (5) 20% (3) 100% (15)
constant_function 40% (6) 6% (1) 0% (0) 53% (8) 100% (15)
constant_if_else_literal 40% (6) 20% (3) 13% (2) 26% (4) 100% (15)
constant_if_else_template 33% (5) 20% (3) 20% (3) 26% (4) 100% (15)
constant_if_literal 20% (3) 40% (6) 13% (2) 26% (4) 100% (15)
constant_if_template 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
deep_data_structure_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
hash_variable_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
literal_text 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
records_loop_template 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
records_loop_value 20% (3) 13% (2) 6% (1) 60% (9) 100% (15)
scalar_variable 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
variable_expression 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
variable_function 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
variable_if_else_literal 33% (5) 13% (2) 33% (5) 20% (3) 100% (15)
variable_if_else_template 33% (5) 13% (2) 33% (5) 20% (3) 100% (15)
variable_if_literal 33% (5) 13% (2) 33% (5) 20% (3) 100% (15)
variable_if_template 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)

TeMMHM, Text::MicroMason (2.07) using Text::MicroMason::HTMLMason (no version number)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (72) 4% (16) 13% (50) 61% (222) 100% (360)
uncached_disk 20% (72) 11% (40) 55% (201) 13% (47) 100% (360)
uncached_string 20% (72) 15% (57) 20% (74) 43% (157) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (216) 9% (39) 15% (69) 25% (108) 100% (432)
embedded-perl 0% (0) 8% (18) 47% (102) 44% (96) 100% (216)
pure-perl 0% (0) 17% (38) 24% (52) 58% (126) 100% (216)
pure-perl,embedded-perl 0% (0) 8% (18) 47% (102) 44% (96) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (72) 16% (61) 32% (118) 30% (109) 100% (360)
15 20% (72) 7% (27) 28% (104) 43% (157) 100% (360)
30 20% (72) 6% (25) 28% (103) 44% (160) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (9) 2% (1) 28% (13) 48% (22) 100% (45)
array_loop_value 20% (9) 11% (5) 20% (9) 48% (22) 100% (45)
array_variable_value 20% (9) 6% (3) 46% (21) 26% (12) 100% (45)
complex_variable_expression 20% (9) 0% (0) 35% (16) 44% (20) 100% (45)
constant_expression 20% (9) 11% (5) 35% (16) 33% (15) 100% (45)
constant_function 20% (9) 4% (2) 44% (20) 31% (14) 100% (45)
constant_if_else_literal 20% (9) 31% (14) 31% (14) 17% (8) 100% (45)
constant_if_else_template 20% (9) 2% (1) 22% (10) 55% (25) 100% (45)
constant_if_literal 20% (9) 26% (12) 31% (14) 22% (10) 100% (45)
constant_if_template 20% (9) 2% (1) 28% (13) 48% (22) 100% (45)
deep_data_structure_value 20% (9) 0% (0) 17% (8) 62% (28) 100% (45)
hash_loop_template 20% (9) 8% (4) 31% (14) 40% (18) 100% (45)
hash_loop_value 20% (9) 4% (2) 13% (6) 62% (28) 100% (45)
hash_variable_value 20% (9) 6% (3) 46% (21) 26% (12) 100% (45)
literal_text 20% (9) 8% (4) 17% (8) 53% (24) 100% (45)
records_loop_template 20% (9) 11% (5) 28% (13) 40% (18) 100% (45)
records_loop_value 20% (9) 4% (2) 15% (7) 60% (27) 100% (45)
scalar_variable 20% (9) 17% (8) 35% (16) 26% (12) 100% (45)
variable_expression 20% (9) 2% (1) 42% (19) 35% (16) 100% (45)
variable_function 20% (9) 4% (2) 40% (18) 35% (16) 100% (45)
variable_if_else_literal 20% (9) 40% (18) 22% (10) 17% (8) 100% (45)
variable_if_else_template 20% (9) 8% (4) 26% (12) 44% (20) 100% (45)
variable_if_literal 20% (9) 22% (10) 31% (14) 26% (12) 100% (45)
variable_if_template 20% (9) 13% (6) 28% (13) 37% (17) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 50% (60) 25% (30) 22% (27) 2% (3) 100% (120)
uncached_disk 33% (40) 25% (31) 16% (20) 24% (29) 100% (120)
uncached_string 20% (24) 0% (0) 11% (14) 68% (82) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (75) 15% (23) 16% (24) 15% (22) 100% (144)
embedded-perl 31% (23) 19% (14) 8% (6) 40% (29) 100% (72)
pure-perl 4% (3) 13% (10) 34% (25) 47% (34) 100% (72)
pure-perl,embedded-perl 31% (23) 19% (14) 8% (6) 40% (29) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (5) 0% (0) 20% (3) 46% (7) 100% (15)
array_loop_value 33% (5) 0% (0) 20% (3) 46% (7) 100% (15)
array_variable_value 33% (5) 33% (5) 6% (1) 26% (4) 100% (15)
complex_variable_expression 33% (5) 26% (4) 13% (2) 26% (4) 100% (15)
constant_expression 46% (7) 26% (4) 0% (0) 26% (4) 100% (15)
constant_function 46% (7) 20% (3) 13% (2) 20% (3) 100% (15)
constant_if_else_literal 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
constant_if_else_template 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)
constant_if_literal 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
constant_if_template 33% (5) 6% (1) 6% (1) 53% (8) 100% (15)
deep_data_structure_value 33% (5) 0% (0) 40% (6) 26% (4) 100% (15)
hash_loop_template 60% (9) 0% (0) 6% (1) 33% (5) 100% (15)
hash_loop_value 33% (5) 0% (0) 13% (2) 53% (8) 100% (15)
hash_variable_value 33% (5) 20% (3) 20% (3) 26% (4) 100% (15)
literal_text 33% (5) 13% (2) 33% (5) 20% (3) 100% (15)
records_loop_template 46% (7) 6% (1) 20% (3) 26% (4) 100% (15)
records_loop_value 33% (5) 0% (0) 13% (2) 53% (8) 100% (15)
scalar_variable 33% (5) 33% (5) 13% (2) 20% (3) 100% (15)
variable_expression 33% (5) 26% (4) 13% (2) 26% (4) 100% (15)
variable_function 46% (7) 13% (2) 13% (2) 26% (4) 100% (15)
variable_if_else_literal 33% (5) 33% (5) 26% (4) 6% (1) 100% (15)
variable_if_else_template 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)
variable_if_literal 20% (3) 26% (4) 33% (5) 20% (3) 100% (15)
variable_if_template 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)

TeMMTeTe, Text::MicroMason (2.07) using Text::MicroMason::TextTemplate (no version number)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (51) 49% (125) 9% (23) 21% (56) 100% (255)
uncached_disk 100% (255) 0% (0) 0% (0) 0% (0) 100% (255)
uncached_string 96% (246) 3% (9) 0% (0) 0% (0) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 81% (248) 6% (21) 2% (9) 9% (28) 100% (306)
embedded-perl 66% (102) 30% (47) 2% (4) 0% (0) 100% (153)
pure-perl 65% (100) 12% (19) 3% (6) 18% (28) 100% (153)
pure-perl,embedded-perl 66% (102) 30% (47) 2% (4) 0% (0) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 72% (185) 22% (57) 1% (5) 3% (8) 100% (255)
15 72% (184) 15% (40) 2% (7) 9% (24) 100% (255)
30 71% (183) 14% (37) 4% (11) 9% (24) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 71% (32) 6% (3) 8% (4) 13% (6) 100% (45)
array_variable_value 73% (33) 17% (8) 0% (0) 8% (4) 100% (45)
complex_variable_expression 73% (33) 13% (6) 0% (0) 13% (6) 100% (45)
constant_expression 73% (33) 17% (8) 8% (4) 0% (0) 100% (45)
constant_function 73% (33) 26% (12) 0% (0) 0% (0) 100% (45)
constant_if_else_literal 73% (33) 17% (8) 8% (4) 0% (0) 100% (45)
constant_if_literal 73% (33) 22% (10) 4% (2) 0% (0) 100% (45)
deep_data_structure_value 66% (30) 20% (9) 4% (2) 8% (4) 100% (45)
hash_loop_value 73% (33) 8% (4) 4% (2) 13% (6) 100% (45)
hash_variable_value 73% (33) 17% (8) 0% (0) 8% (4) 100% (45)
literal_text 73% (33) 26% (12) 0% (0) 0% (0) 100% (45)
records_loop_value 62% (28) 20% (9) 4% (2) 13% (6) 100% (45)
scalar_variable 73% (33) 17% (8) 0% (0) 8% (4) 100% (45)
variable_expression 73% (33) 13% (6) 4% (2) 8% (4) 100% (45)
variable_function 73% (33) 15% (7) 2% (1) 8% (4) 100% (45)
variable_if_else_literal 73% (33) 17% (8) 0% (0) 8% (4) 100% (45)
variable_if_literal 73% (33) 17% (8) 0% (0) 8% (4) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (17) 0% (0) 7% (6) 72% (62) 100% (85)
uncached_disk 96% (82) 3% (3) 0% (0) 0% (0) 100% (85)
uncached_string 82% (70) 15% (13) 2% (2) 0% (0) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (77) 6% (7) 3% (4) 13% (14) 100% (102)
embedded-perl 66% (34) 0% (0) 1% (1) 31% (16) 100% (51)
pure-perl 47% (24) 17% (9) 3% (2) 31% (16) 100% (51)
pure-perl,embedded-perl 66% (34) 0% (0) 1% (1) 31% (16) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
array_variable_value 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
complex_variable_expression 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
constant_expression 60% (9) 13% (2) 6% (1) 20% (3) 100% (15)
constant_function 60% (9) 13% (2) 0% (0) 26% (4) 100% (15)
constant_if_else_literal 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
constant_if_literal 73% (11) 0% (0) 6% (1) 20% (3) 100% (15)
deep_data_structure_value 53% (8) 20% (3) 0% (0) 26% (4) 100% (15)
hash_loop_value 60% (9) 13% (2) 0% (0) 26% (4) 100% (15)
hash_variable_value 60% (9) 13% (2) 0% (0) 26% (4) 100% (15)
literal_text 73% (11) 0% (0) 26% (4) 0% (0) 100% (15)
records_loop_value 46% (7) 13% (2) 13% (2) 26% (4) 100% (15)
scalar_variable 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_expression 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
variable_function 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_if_else_literal 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_if_literal 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)

TeMT, Text::MicroTemplate (0.13)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 64% (232) 25% (91) 10% (36) 0% (1) 100% (360)
memory_cache 93% (338) 0% (2) 0% (0) 5% (20) 100% (360)
uncached_string 22% (80) 11% (43) 43% (158) 21% (79) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 74% (321) 6% (28) 17% (76) 1% (7) 100% (432)
embedded-perl 51% (112) 17% (37) 14% (31) 16% (36) 100% (216)
pure-perl 48% (105) 15% (34) 25% (56) 9% (21) 100% (216)
pure-perl,embedded-perl 51% (112) 17% (37) 14% (31) 16% (36) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 40% (146) 26% (96) 13% (47) 19% (71) 100% (360)
15 70% (252) 3% (13) 21% (76) 5% (19) 100% (360)
30 70% (252) 7% (27) 19% (71) 2% (10) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 55% (25) 4% (2) 28% (13) 11% (5) 100% (45)
array_loop_value 55% (25) 4% (2) 26% (12) 13% (6) 100% (45)
array_variable_value 55% (25) 26% (12) 8% (4) 8% (4) 100% (45)
complex_variable_expression 55% (25) 22% (10) 11% (5) 11% (5) 100% (45)
constant_expression 60% (27) 17% (8) 13% (6) 8% (4) 100% (45)
constant_function 60% (27) 8% (4) 20% (9) 11% (5) 100% (45)
constant_if_else_literal 64% (29) 8% (4) 17% (8) 8% (4) 100% (45)
constant_if_else_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
constant_if_literal 60% (27) 11% (5) 15% (7) 13% (6) 100% (45)
constant_if_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
deep_data_structure_value 51% (23) 15% (7) 6% (3) 26% (12) 100% (45)
hash_loop_template 55% (25) 4% (2) 22% (10) 17% (8) 100% (45)
hash_loop_value 55% (25) 8% (4) 35% (16) 0% (0) 100% (45)
hash_variable_value 60% (27) 15% (7) 15% (7) 8% (4) 100% (45)
literal_text 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
records_loop_template 55% (25) 8% (4) 24% (11) 11% (5) 100% (45)
records_loop_value 55% (25) 8% (4) 31% (14) 4% (2) 100% (45)
scalar_variable 60% (27) 28% (13) 2% (1) 8% (4) 100% (45)
variable_expression 60% (27) 8% (4) 22% (10) 8% (4) 100% (45)
variable_function 60% (27) 13% (6) 13% (6) 13% (6) 100% (45)
variable_if_else_literal 64% (29) 13% (6) 13% (6) 8% (4) 100% (45)
variable_if_else_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
variable_if_literal 60% (27) 13% (6) 17% (8) 8% (4) 100% (45)
variable_if_template 64% (29) 13% (6) 17% (8) 4% (2) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 85% (102) 6% (8) 8% (10) 0% (0) 100% (120)
memory_cache 93% (112) 5% (6) 1% (2) 0% (0) 100% (120)
uncached_string 60% (72) 28% (34) 11% (14) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (108) 16% (24) 8% (12) 0% (0) 100% (144)
embedded-perl 98% (71) 1% (1) 0% (0) 0% (0) 100% (72)
pure-perl 50% (36) 30% (22) 19% (14) 0% (0) 100% (72)
pure-perl,embedded-perl 98% (71) 1% (1) 0% (0) 0% (0) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 60% (9) 13% (2) 26% (4) 0% (0) 100% (15)
array_loop_value 60% (9) 0% (0) 40% (6) 0% (0) 100% (15)
array_variable_value 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
complex_variable_expression 73% (11) 13% (2) 13% (2) 0% (0) 100% (15)
constant_expression 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_function 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_if_else_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_if_else_template 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_if_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_if_template 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
deep_data_structure_value 60% (9) 26% (4) 13% (2) 0% (0) 100% (15)
hash_loop_template 73% (11) 13% (2) 13% (2) 0% (0) 100% (15)
hash_loop_value 73% (11) 20% (3) 6% (1) 0% (0) 100% (15)
hash_variable_value 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
literal_text 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
records_loop_template 60% (9) 13% (2) 26% (4) 0% (0) 100% (15)
records_loop_value 60% (9) 13% (2) 26% (4) 0% (0) 100% (15)
scalar_variable 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_expression 73% (11) 26% (4) 0% (0) 0% (0) 100% (15)
variable_function 86% (13) 6% (1) 6% (1) 0% (0) 100% (15)
variable_if_else_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_else_template 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_template 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)

TeTe, Text::Template (1.45)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 93% (238) 1% (5) 4% (12) 0% (0) 100% (255)
uncached_disk 20% (53) 5% (15) 21% (55) 51% (132) 100% (255)
uncached_string 20% (51) 3% (8) 10% (26) 66% (170) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (196) 3% (11) 18% (58) 13% (41) 100% (306)
embedded-perl 33% (52) 2% (4) 2% (4) 60% (93) 100% (153)
pure-perl 27% (42) 5% (9) 17% (27) 49% (75) 100% (153)
pure-perl,embedded-perl 33% (52) 2% (4) 2% (4) 60% (93) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 46% (119) 1% (5) 13% (35) 37% (96) 100% (255)
15 43% (111) 3% (10) 12% (31) 40% (103) 100% (255)
30 43% (112) 5% (13) 10% (27) 40% (103) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 37% (17) 0% (0) 13% (6) 48% (22) 100% (45)
array_variable_value 46% (21) 0% (0) 6% (3) 46% (21) 100% (45)
complex_variable_expression 37% (17) 8% (4) 6% (3) 46% (21) 100% (45)
constant_expression 46% (21) 0% (0) 8% (4) 44% (20) 100% (45)
constant_function 46% (21) 0% (0) 6% (3) 46% (21) 100% (45)
constant_if_else_literal 46% (21) 0% (0) 6% (3) 46% (21) 100% (45)
constant_if_literal 46% (21) 0% (0) 11% (5) 42% (19) 100% (45)
deep_data_structure_value 48% (22) 15% (7) 26% (12) 8% (4) 100% (45)
hash_loop_value 37% (17) 0% (0) 15% (7) 46% (21) 100% (45)
hash_variable_value 46% (21) 0% (0) 4% (2) 48% (22) 100% (45)
literal_text 46% (21) 28% (13) 15% (7) 8% (4) 100% (45)
records_loop_value 37% (17) 0% (0) 15% (7) 46% (21) 100% (45)
scalar_variable 46% (21) 4% (2) 22% (10) 26% (12) 100% (45)
variable_expression 46% (21) 0% (0) 8% (4) 44% (20) 100% (45)
variable_function 46% (21) 0% (0) 6% (3) 46% (21) 100% (45)
variable_if_else_literal 46% (21) 2% (1) 11% (5) 40% (18) 100% (45)
variable_if_literal 46% (21) 2% (1) 20% (9) 31% (14) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 57% (49) 23% (20) 7% (6) 11% (10) 100% (85)
uncached_disk 22% (19) 10% (9) 15% (13) 51% (44) 100% (85)
uncached_string 22% (19) 9% (8) 18% (16) 49% (42) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (54) 14% (15) 16% (17) 15% (16) 100% (102)
embedded-perl 29% (15) 13% (7) 7% (4) 49% (25) 100% (51)
pure-perl 5% (3) 15% (8) 19% (10) 58% (30) 100% (51)
pure-perl,embedded-perl 29% (15) 13% (7) 7% (4) 49% (25) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 20% (3) 13% (2) 0% (0) 66% (10) 100% (15)
array_variable_value 33% (5) 6% (1) 13% (2) 46% (7) 100% (15)
complex_variable_expression 33% (5) 40% (6) 26% (4) 0% (0) 100% (15)
constant_expression 33% (5) 13% (2) 6% (1) 46% (7) 100% (15)
constant_function 46% (7) 0% (0) 13% (2) 40% (6) 100% (15)
constant_if_else_literal 46% (7) 0% (0) 6% (1) 46% (7) 100% (15)
constant_if_literal 46% (7) 0% (0) 0% (0) 53% (8) 100% (15)
deep_data_structure_value 60% (9) 33% (5) 6% (1) 0% (0) 100% (15)
hash_loop_value 20% (3) 13% (2) 6% (1) 60% (9) 100% (15)
hash_variable_value 33% (5) 20% (3) 46% (7) 0% (0) 100% (15)
literal_text 20% (3) 40% (6) 13% (2) 26% (4) 100% (15)
records_loop_value 20% (3) 13% (2) 6% (1) 60% (9) 100% (15)
scalar_variable 33% (5) 13% (2) 13% (2) 40% (6) 100% (15)
variable_expression 33% (5) 6% (1) 33% (5) 26% (4) 100% (15)
variable_function 33% (5) 6% (1) 33% (5) 26% (4) 100% (15)
variable_if_else_literal 33% (5) 13% (2) 0% (0) 53% (8) 100% (15)
variable_if_literal 33% (5) 13% (2) 6% (1) 46% (7) 100% (15)

TeTeSimp, Text::Template::Simple (0.82)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 54% (197) 36% (130) 1% (6) 7% (27) 100% (360)
memory_cache 39% (142) 7% (26) 10% (36) 43% (156) 100% (360)
uncached_disk 76% (277) 20% (72) 1% (7) 1% (4) 100% (360)
uncached_string 63% (228) 24% (89) 10% (36) 1% (7) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 65% (380) 20% (120) 7% (46) 5% (30) 100% (576)
embedded-perl 57% (166) 18% (54) 1% (3) 22% (65) 100% (288)
pure-perl 45% (132) 30% (89) 11% (33) 11% (34) 100% (288)
pure-perl,embedded-perl 57% (166) 18% (54) 1% (3) 22% (65) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 80% (386) 12% (60) 1% (6) 5% (28) 100% (480)
15 50% (241) 26% (126) 7% (36) 16% (77) 100% (480)
30 45% (217) 27% (131) 8% (43) 18% (89) 100% (480)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 58% (35) 11% (7) 6% (4) 23% (14) 100% (60)
array_loop_value 51% (31) 18% (11) 6% (4) 23% (14) 100% (60)
array_variable_value 61% (37) 25% (15) 3% (2) 10% (6) 100% (60)
complex_variable_expression 36% (22) 26% (16) 13% (8) 23% (14) 100% (60)
constant_expression 55% (33) 31% (19) 6% (4) 6% (4) 100% (60)
constant_function 65% (39) 21% (13) 6% (4) 6% (4) 100% (60)
constant_if_else_literal 58% (35) 28% (17) 3% (2) 10% (6) 100% (60)
constant_if_else_template 68% (41) 15% (9) 3% (2) 13% (8) 100% (60)
constant_if_literal 61% (37) 31% (19) 0% (0) 6% (4) 100% (60)
constant_if_template 68% (41) 18% (11) 0% (0) 13% (8) 100% (60)
deep_data_structure_value 51% (31) 30% (18) 11% (7) 6% (4) 100% (60)
hash_loop_template 56% (34) 13% (8) 6% (4) 23% (14) 100% (60)
hash_loop_value 50% (30) 20% (12) 6% (4) 23% (14) 100% (60)
hash_variable_value 58% (35) 31% (19) 3% (2) 6% (4) 100% (60)
literal_text 43% (26) 16% (10) 13% (8) 26% (16) 100% (60)
records_loop_template 50% (30) 20% (12) 13% (8) 16% (10) 100% (60)
records_loop_value 50% (30) 20% (12) 13% (8) 16% (10) 100% (60)
scalar_variable 81% (49) 11% (7) 0% (0) 6% (4) 100% (60)
variable_expression 50% (30) 30% (18) 10% (6) 10% (6) 100% (60)
variable_function 58% (35) 21% (13) 6% (4) 13% (8) 100% (60)
variable_if_else_literal 68% (41) 21% (13) 0% (0) 10% (6) 100% (60)
variable_if_else_template 65% (39) 21% (13) 3% (2) 10% (6) 100% (60)
variable_if_literal 71% (43) 21% (13) 0% (0) 6% (4) 100% (60)
variable_if_template 66% (40) 20% (12) 3% (2) 10% (6) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (26) 26% (32) 10% (12) 41% (50) 100% (120)
memory_cache 21% (26) 0% (0) 10% (12) 68% (82) 100% (120)
uncached_disk 25% (30) 9% (11) 55% (66) 10% (13) 100% (120)
uncached_string 26% (32) 30% (36) 28% (34) 15% (18) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (99) 5% (10) 24% (47) 18% (36) 100% (192)
embedded-perl 6% (6) 33% (32) 18% (18) 41% (40) 100% (96)
pure-perl 3% (3) 5% (5) 42% (41) 48% (47) 100% (96)
pure-perl,embedded-perl 6% (6) 33% (32) 18% (18) 41% (40) 100% (96)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (4) 25% (5) 15% (3) 40% (8) 100% (20)
array_loop_value 20% (4) 10% (2) 30% (6) 40% (8) 100% (20)
array_variable_value 20% (4) 20% (4) 35% (7) 25% (5) 100% (20)
complex_variable_expression 20% (4) 10% (2) 5% (1) 65% (13) 100% (20)
constant_expression 20% (4) 20% (4) 45% (9) 15% (3) 100% (20)
constant_function 20% (4) 35% (7) 35% (7) 10% (2) 100% (20)
constant_if_else_literal 20% (4) 15% (3) 25% (5) 40% (8) 100% (20)
constant_if_else_template 30% (6) 20% (4) 25% (5) 25% (5) 100% (20)
constant_if_literal 20% (4) 15% (3) 35% (7) 30% (6) 100% (20)
constant_if_template 20% (4) 30% (6) 30% (6) 20% (4) 100% (20)
deep_data_structure_value 20% (4) 10% (2) 0% (0) 70% (14) 100% (20)
hash_loop_template 50% (10) 15% (3) 5% (1) 30% (6) 100% (20)
hash_loop_value 30% (6) 30% (6) 10% (2) 30% (6) 100% (20)
hash_variable_value 20% (4) 10% (2) 25% (5) 45% (9) 100% (20)
literal_text 40% (8) 0% (0) 5% (1) 55% (11) 100% (20)
records_loop_template 30% (6) 0% (0) 25% (5) 45% (9) 100% (20)
records_loop_value 20% (4) 20% (4) 15% (3) 45% (9) 100% (20)
scalar_variable 20% (4) 25% (5) 45% (9) 10% (2) 100% (20)
variable_expression 20% (4) 10% (2) 35% (7) 35% (7) 100% (20)
variable_function 20% (4) 10% (2) 40% (8) 30% (6) 100% (20)
variable_if_else_literal 20% (4) 10% (2) 30% (6) 40% (8) 100% (20)
variable_if_else_template 30% (6) 20% (4) 35% (7) 15% (3) 100% (20)
variable_if_literal 20% (4) 15% (3) 25% (5) 40% (8) 100% (20)
variable_if_template 20% (4) 20% (4) 45% (9) 15% (3) 100% (20)

TeTmpl, Text::Tmpl (0.33)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 26% (48) 37% (67) 16% (30) 19% (35) 100% (180)
uncached_string 20% (36) 3% (6) 38% (70) 37% (68) 100% (180)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (72) 0% (1) 8% (12) 40% (59) 100% (144)
mini-language 0% (0) 16% (12) 38% (28) 44% (32) 100% (72)
not-pure-perl 8% (6) 41% (30) 41% (30) 8% (6) 100% (72)
not-pure-perl,mini-language 8% (6) 41% (30) 41% (30) 8% (6) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 23% (28) 27% (33) 31% (38) 17% (21) 100% (120)
15 23% (28) 16% (20) 25% (31) 34% (41) 100% (120)
30 23% (28) 16% (20) 25% (31) 34% (41) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (6) 23% (7) 33% (10) 23% (7) 100% (30)
array_loop_value 20% (6) 23% (7) 30% (9) 26% (8) 100% (30)
hash_loop_template 40% (12) 0% (0) 0% (0) 60% (18) 100% (30)
hash_loop_value 40% (12) 0% (0) 0% (0) 60% (18) 100% (30)
literal_text 20% (6) 26% (8) 40% (12) 13% (4) 100% (30)
records_loop_template 20% (6) 20% (6) 33% (10) 26% (8) 100% (30)
records_loop_value 20% (6) 20% (6) 30% (9) 30% (9) 100% (30)
scalar_variable 20% (6) 30% (9) 30% (9) 20% (6) 100% (30)
variable_if_else_literal 20% (6) 26% (8) 33% (10) 20% (6) 100% (30)
variable_if_else_template 20% (6) 20% (6) 36% (11) 23% (7) 100% (30)
variable_if_literal 20% (6) 26% (8) 33% (10) 20% (6) 100% (30)
variable_if_template 20% (6) 26% (8) 33% (10) 20% (6) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 26% (16) 0% (0) 16% (10) 56% (34) 100% (60)
uncached_string 20% (12) 0% (0) 0% (0) 80% (48) 100% (60)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (24) 0% (0) 0% (0) 50% (24) 100% (48)
mini-language 0% (0) 0% (0) 0% (0) 100% (24) 100% (24)
not-pure-perl 8% (2) 0% (0) 20% (5) 70% (17) 100% (24)
not-pure-perl,mini-language 8% (2) 0% (0) 20% (5) 70% (17) 100% (24)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
array_loop_value 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
hash_loop_template 40% (4) 0% (0) 0% (0) 60% (6) 100% (10)
hash_loop_value 40% (4) 0% (0) 0% (0) 60% (6) 100% (10)
literal_text 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
records_loop_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
records_loop_value 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
scalar_variable 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
variable_if_else_literal 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
variable_if_else_template 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)
variable_if_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_template 20% (2) 0% (0) 20% (2) 60% (6) 100% (10)

TeXs, Text::Xslate (0.1027)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 55% (166) 3% (10) 9% (28) 32% (96) 100% (300)
instance_reuse 20% (60) 0% (0) 0% (0) 80% (240) 100% (300)
uncached_disk 100% (300) 0% (0) 0% (0) 0% (0) 100% (300)
uncached_string 100% (300) 0% (0) 0% (0) 0% (0) 100% (300)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 80% (388) 0% (4) 2% (11) 16% (77) 100% (480)
mini-language 60% (146) 2% (6) 7% (17) 29% (71) 100% (240)
not-pure-perl 60% (146) 0% (0) 0% (0) 39% (94) 100% (240)
not-pure-perl,mini-language 60% (146) 0% (0) 0% (0) 39% (94) 100% (240)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 60% (240) 0% (0) 4% (19) 35% (141) 100% (400)
15 71% (285) 2% (9) 1% (4) 25% (102) 100% (400)
30 75% (301) 0% (1) 1% (5) 23% (93) 100% (400)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 60% (36) 0% (0) 1% (1) 38% (23) 100% (60)
array_loop_value 60% (36) 0% (0) 0% (0) 40% (24) 100% (60)
array_variable_value 73% (44) 0% (0) 0% (0) 26% (16) 100% (60)
complex_variable_expression 63% (38) 3% (2) 3% (2) 30% (18) 100% (60)
constant_expression 66% (40) 3% (2) 1% (1) 28% (17) 100% (60)
constant_if_else_literal 73% (44) 0% (0) 3% (2) 23% (14) 100% (60)
constant_if_else_template 73% (44) 0% (0) 1% (1) 25% (15) 100% (60)
constant_if_literal 73% (44) 0% (0) 3% (2) 23% (14) 100% (60)
constant_if_template 73% (44) 0% (0) 1% (1) 25% (15) 100% (60)
deep_data_structure_value 73% (44) 0% (0) 0% (0) 26% (16) 100% (60)
hash_variable_value 66% (40) 3% (2) 0% (0) 30% (18) 100% (60)
literal_text 73% (44) 0% (0) 3% (2) 23% (14) 100% (60)
records_loop_template 60% (36) 0% (0) 6% (4) 33% (20) 100% (60)
records_loop_value 60% (36) 0% (0) 6% (4) 33% (20) 100% (60)
scalar_variable 66% (40) 3% (2) 1% (1) 28% (17) 100% (60)
variable_expression 66% (40) 3% (2) 1% (1) 28% (17) 100% (60)
variable_if_else_literal 73% (44) 0% (0) 3% (2) 23% (14) 100% (60)
variable_if_else_template 73% (44) 0% (0) 1% (1) 25% (15) 100% (60)
variable_if_literal 73% (44) 0% (0) 3% (2) 23% (14) 100% (60)
variable_if_template 73% (44) 0% (0) 1% (1) 25% (15) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 92% (92) 8% (8) 0% (0) 0% (0) 100% (100)
instance_reuse 33% (33) 15% (15) 20% (20) 32% (32) 100% (100)
uncached_disk 94% (94) 6% (6) 0% (0) 0% (0) 100% (100)
uncached_string 88% (88) 10% (10) 2% (2) 0% (0) 100% (100)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 81% (131) 8% (13) 3% (6) 6% (10) 100% (160)
mini-language 57% (46) 20% (16) 5% (4) 17% (14) 100% (80)
not-pure-perl 81% (65) 6% (5) 7% (6) 5% (4) 100% (80)
not-pure-perl,mini-language 81% (65) 6% (5) 7% (6) 5% (4) 100% (80)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 60% (12) 15% (3) 15% (3) 10% (2) 100% (20)
array_loop_value 60% (12) 15% (3) 20% (4) 5% (1) 100% (20)
array_variable_value 80% (16) 0% (0) 0% (0) 20% (4) 100% (20)
complex_variable_expression 75% (15) 5% (1) 0% (0) 20% (4) 100% (20)
constant_expression 85% (17) 15% (3) 0% (0) 0% (0) 100% (20)
constant_if_else_literal 70% (14) 30% (6) 0% (0) 0% (0) 100% (20)
constant_if_else_template 75% (15) 15% (3) 0% (0) 10% (2) 100% (20)
constant_if_literal 85% (17) 15% (3) 0% (0) 0% (0) 100% (20)
constant_if_template 75% (15) 15% (3) 0% (0) 10% (2) 100% (20)
deep_data_structure_value 80% (16) 0% (0) 15% (3) 5% (1) 100% (20)
hash_variable_value 90% (18) 0% (0) 10% (2) 0% (0) 100% (20)
literal_text 100% (20) 0% (0) 0% (0) 0% (0) 100% (20)
records_loop_template 60% (12) 20% (4) 15% (3) 5% (1) 100% (20)
records_loop_value 70% (14) 10% (2) 15% (3) 5% (1) 100% (20)
scalar_variable 90% (18) 0% (0) 10% (2) 0% (0) 100% (20)
variable_expression 70% (14) 10% (2) 10% (2) 10% (2) 100% (20)
variable_if_else_literal 80% (16) 10% (2) 0% (0) 10% (2) 100% (20)
variable_if_else_template 75% (15) 5% (1) 0% (0) 20% (4) 100% (20)
variable_if_literal 80% (16) 10% (2) 0% (0) 10% (2) 100% (20)
variable_if_template 75% (15) 5% (1) 0% (0) 20% (4) 100% (20)

Tenj, Tenjin (0.061)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (72) 3% (14) 8% (31) 67% (243) 100% (360)
instance_reuse 80% (291) 3% (14) 14% (53) 0% (2) 100% (360)
uncached_disk 20% (72) 1% (4) 17% (62) 61% (222) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 58% (254) 3% (16) 17% (74) 20% (88) 100% (432)
embedded-perl 33% (72) 0% (0) 3% (8) 62% (136) 100% (216)
pure-perl 17% (37) 7% (16) 25% (56) 49% (107) 100% (216)
pure-perl,embedded-perl 33% (72) 0% (0) 3% (8) 62% (136) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 43% (156) 2% (10) 13% (47) 40% (147) 100% (360)
15 39% (143) 2% (9) 12% (44) 45% (164) 100% (360)
30 37% (136) 3% (13) 15% (55) 43% (156) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (15) 0% (0) 20% (9) 46% (21) 100% (45)
array_loop_value 33% (15) 0% (0) 33% (15) 33% (15) 100% (45)
array_variable_value 37% (17) 4% (2) 8% (4) 48% (22) 100% (45)
complex_variable_expression 37% (17) 0% (0) 11% (5) 51% (23) 100% (45)
constant_expression 42% (19) 6% (3) 2% (1) 48% (22) 100% (45)
constant_function 46% (21) 0% (0) 4% (2) 48% (22) 100% (45)
constant_if_else_literal 46% (21) 4% (2) 15% (7) 33% (15) 100% (45)
constant_if_else_template 46% (21) 0% (0) 13% (6) 40% (18) 100% (45)
constant_if_literal 46% (21) 4% (2) 20% (9) 28% (13) 100% (45)
constant_if_template 46% (21) 2% (1) 4% (2) 46% (21) 100% (45)
deep_data_structure_value 37% (17) 2% (1) 6% (3) 53% (24) 100% (45)
hash_loop_template 33% (15) 0% (0) 8% (4) 57% (26) 100% (45)
hash_loop_value 33% (15) 0% (0) 31% (14) 35% (16) 100% (45)
hash_variable_value 37% (17) 4% (2) 8% (4) 48% (22) 100% (45)
literal_text 46% (21) 6% (3) 6% (3) 40% (18) 100% (45)
records_loop_template 33% (15) 0% (0) 20% (9) 46% (21) 100% (45)
records_loop_value 33% (15) 0% (0) 28% (13) 37% (17) 100% (45)
scalar_variable 42% (19) 4% (2) 6% (3) 46% (21) 100% (45)
variable_expression 37% (17) 4% (2) 8% (4) 48% (22) 100% (45)
variable_function 37% (17) 4% (2) 8% (4) 48% (22) 100% (45)
variable_if_else_literal 46% (21) 6% (3) 8% (4) 37% (17) 100% (45)
variable_if_else_template 42% (19) 2% (1) 20% (9) 35% (16) 100% (45)
variable_if_literal 46% (21) 6% (3) 8% (4) 37% (17) 100% (45)
variable_if_template 40% (18) 6% (3) 17% (8) 35% (16) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (26) 18% (22) 9% (11) 50% (61) 100% (120)
instance_reuse 39% (47) 24% (29) 10% (13) 25% (31) 100% (120)
uncached_disk 35% (42) 22% (27) 9% (11) 33% (40) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 53% (77) 13% (19) 7% (11) 25% (37) 100% (144)
embedded-perl 23% (17) 31% (23) 6% (5) 37% (27) 100% (72)
pure-perl 5% (4) 18% (13) 19% (14) 56% (41) 100% (72)
pure-perl,embedded-perl 23% (17) 31% (23) 6% (5) 37% (27) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 33% (5) 6% (1) 40% (6) 100% (15)
array_loop_value 20% (3) 46% (7) 6% (1) 26% (4) 100% (15)
array_variable_value 20% (3) 13% (2) 0% (0) 66% (10) 100% (15)
complex_variable_expression 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
constant_expression 20% (3) 20% (3) 6% (1) 53% (8) 100% (15)
constant_function 20% (3) 26% (4) 13% (2) 40% (6) 100% (15)
constant_if_else_literal 60% (9) 26% (4) 13% (2) 0% (0) 100% (15)
constant_if_else_template 46% (7) 26% (4) 13% (2) 13% (2) 100% (15)
constant_if_literal 53% (8) 33% (5) 13% (2) 0% (0) 100% (15)
constant_if_template 33% (5) 20% (3) 20% (3) 26% (4) 100% (15)
deep_data_structure_value 20% (3) 13% (2) 0% (0) 66% (10) 100% (15)
hash_loop_template 46% (7) 0% (0) 0% (0) 53% (8) 100% (15)
hash_loop_value 33% (5) 26% (4) 0% (0) 40% (6) 100% (15)
hash_variable_value 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
literal_text 60% (9) 13% (2) 6% (1) 20% (3) 100% (15)
records_loop_template 20% (3) 13% (2) 20% (3) 46% (7) 100% (15)
records_loop_value 20% (3) 40% (6) 13% (2) 26% (4) 100% (15)
scalar_variable 20% (3) 0% (0) 20% (3) 60% (9) 100% (15)
variable_expression 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
variable_function 20% (3) 13% (2) 0% (0) 66% (10) 100% (15)
variable_if_else_literal 46% (7) 53% (8) 0% (0) 0% (0) 100% (15)
variable_if_else_template 46% (7) 20% (3) 6% (1) 26% (4) 100% (15)
variable_if_literal 46% (7) 40% (6) 13% (2) 0% (0) 100% (15)
variable_if_template 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
© 2009-2013 Sam Graham, unless otherwise noted. All rights reserved.