Perl Template Roundup April 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) 6% (13) 25% (48) 16% (31) 100% (192)
HTC 84% (203) 1% (3) 1% (4) 12% (30) 100% (240)
HTE 78% (240) 11% (35) 8% (26) 1% (5) 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 56% (243) 17% (75) 9% (42) 16% (72) 100% (432)
NT 50% (45) 14% (13) 16% (15) 18% (17) 100% (90)
TAHT 50% (156) 5% (18) 19% (59) 23% (73) 100% (306)
TATT 41% (172) 10% (42) 30% (128) 17% (72) 100% (414)
TATT_P 42% (116) 27% (77) 28% (78) 1% (5) 100% (276)
TATT_PS 7% (21) 46% (127) 17% (48) 28% (80) 100% (276)
TATT_S 13% (36) 21% (60) 16% (45) 48% (135) 100% (276)
TS 57% (249) 25% (109) 16% (71) 0% (3) 100% (432)
TS_CF 25% (73) 17% (50) 17% (49) 40% (116) 100% (288)
TS_CHI 55% (240) 9% (42) 10% (44) 24% (106) 100% (432)
TS_FMM 1% (2) 0% (0) 0% (0) 98% (142) 100% (144)
TT 94% (393) 4% (20) 0% (1) 0% (0) 100% (414)
TT_X 20% (85) 38% (160) 9% (39) 31% (130) 100% (414)
TT_XCET 20% (85) 55% (229) 5% (24) 18% (76) 100% (414)
TTiny 62% (49) 10% (8) 0% (0) 26% (21) 100% (78)
TeCS 50% (198) 5% (21) 1% (7) 42% (170) 100% (396)
TeMMHM 50% (216) 10% (45) 15% (67) 24% (104) 100% (432)
TeMMTeTe 81% (248) 3% (12) 5% (16) 9% (30) 100% (306)
TeMT 73% (319) 6% (30) 17% (74) 2% (9) 100% (432)
TeTe 64% (198) 3% (11) 18% (58) 12% (39) 100% (306)
TeTeSimp 68% (395) 18% (107) 7% (46) 4% (28) 100% (576)
TeTmpl 50% (72) 0% (1) 9% (13) 40% (58) 100% (144)
TeXs 81% (195) 4% (10) 2% (7) 11% (28) 100% (240)
Tenj 59% (256) 2% (11) 19% (86) 18% (79) 100% (432)

Performance Drop-off Distribution

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
HT 64% (41) 15% (10) 17% (11) 3% (2) 100% (64)
HTC 70% (56) 12% (10) 10% (8) 7% (6) 100% (80)
HTE 79% (81) 10% (11) 7% (8) 1% (2) 100% (102)
HTJ 50% (8) 6% (1) 0% (0) 43% (7) 100% (16)
HTP 50% (34) 0% (0) 0% (0) 50% (34) 100% (68)
MoTe 52% (76) 18% (27) 24% (35) 4% (6) 100% (144)
NT 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
TAHT 67% (69) 29% (30) 0% (1) 1% (2) 100% (102)
TATT 61% (85) 15% (22) 12% (17) 10% (14) 100% (138)
TATT_P 44% (41) 19% (18) 20% (19) 15% (14) 100% (92)
TATT_PS 75% (69) 15% (14) 9% (9) 0% (0) 100% (92)
TATT_S 83% (77) 8% (8) 5% (5) 2% (2) 100% (92)
TS 73% (106) 22% (33) 0% (1) 2% (4) 100% (144)
TS_CF 11% (11) 5% (5) 7% (7) 76% (73) 100% (96)
TS_CHI 47% (69) 2% (4) 15% (23) 33% (48) 100% (144)
TS_FMM 91% (44) 0% (0) 0% (0) 8% (4) 100% (48)
TT 48% (67) 28% (39) 16% (23) 6% (9) 100% (138)
TT_X 22% (31) 39% (55) 15% (21) 22% (31) 100% (138)
TT_XCET 6% (9) 21% (30) 20% (28) 51% (71) 100% (138)
TTiny 96% (25) 3% (1) 0% (0) 0% (0) 100% (26)
TeCS 50% (66) 2% (3) 2% (3) 45% (60) 100% (132)
TeMMHM 51% (74) 12% (18) 21% (31) 14% (21) 100% (144)
TeMMTeTe 73% (75) 7% (8) 3% (4) 14% (15) 100% (102)
TeMT 75% (108) 15% (23) 9% (13) 0% (0) 100% (144)
TeTe 53% (55) 12% (13) 15% (16) 17% (18) 100% (102)
TeTeSimp 51% (98) 6% (12) 23% (46) 18% (36) 100% (192)
TeTmpl 50% (24) 0% (0) 0% (0) 50% (24) 100% (48)
TeXs 95% (76) 5% (4) 0% (0) 0% (0) 100% (80)
Tenj 52% (76) 12% (18) 8% (12) 26% (38) 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) 21% (26) 45% (54) 0% (0) 100% (120)
uncached_disk 20% (24) 15% (19) 33% (40) 30% (37) 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) 6% (13) 25% (48) 16% (31) 100% (192)
mini-language 4% (4) 28% (27) 48% (47) 18% (18) 100% (96)
pure-perl 6% (6) 8% (8) 40% (39) 44% (43) 100% (96)
pure-perl,mini-language 4% (4) 19% (19) 37% (36) 38% (37) 100% (96)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (32) 19% (31) 46% (75) 13% (22) 100% (160)
10 25% (40) 10% (17) 31% (50) 33% (53) 100% (160)
30 26% (42) 11% (19) 28% (45) 33% (54) 100% (160)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (12) 25% (15) 43% (26) 11% (7) 100% (60)
records_loop_template 35% (21) 26% (16) 35% (21) 3% (2) 100% (60)
records_loop_value 35% (21) 28% (17) 33% (20) 3% (2) 100% (60)
scalar_variable 20% (12) 10% (6) 33% (20) 36% (22) 100% (60)
variable_if_else_literal 20% (12) 8% (5) 33% (20) 38% (23) 100% (60)
variable_if_else_template 20% (12) 3% (2) 36% (22) 40% (24) 100% (60)
variable_if_literal 20% (12) 6% (4) 30% (18) 43% (26) 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) 0% (0) 32% (13) 27% (11) 100% (40)
memory_cache 40% (16) 45% (18) 15% (6) 0% (0) 100% (40)
uncached_disk 50% (20) 32% (13) 17% (7) 0% (0) 100% (40)
uncached_string 40% (16) 12% (5) 32% (13) 15% (6) 100% (40)

Performance Drop-off Distribution by Comparable Engines

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

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 50% (10) 20% (4) 10% (2) 20% (4) 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) 5% (1) 45% (9) 30% (6) 100% (20)
variable_if_else_literal 20% (4) 35% (7) 40% (8) 5% (1) 100% (20)
variable_if_else_template 20% (4) 40% (8) 30% (6) 10% (2) 100% (20)
variable_if_literal 20% (4) 35% (7) 35% (7) 10% (2) 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)
10 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) 38% (19) 26% (13) 16% (8) 100% (50)
memory_cache 20% (10) 0% (0) 24% (12) 56% (28) 100% (50)
uncached_disk 84% (42) 12% (6) 2% (1) 2% (1) 100% (50)
uncached_string 74% (37) 18% (9) 8% (4) 0% (0) 100% (50)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 70% (56) 12% (10) 10% (8) 7% (6) 100% (80)
mini-language 35% (14) 32% (13) 2% (1) 30% (12) 100% (40)
pure-perl 40% (16) 20% (8) 25% (10) 15% (6) 100% (40)
pure-perl,mini-language 32% (13) 7% (3) 27% (11) 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) 20% (4) 35% (7) 25% (5) 100% (20)
records_loop_template 40% (8) 15% (3) 15% (3) 30% (6) 100% (20)
records_loop_value 40% (8) 15% (3) 15% (3) 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 74% (191) 23% (60) 1% (4) 0% (0) 100% (255)
uncached_disk 71% (182) 12% (32) 12% (33) 3% (8) 100% (255)
uncached_string 66% (170) 10% (26) 14% (38) 8% (21) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 78% (240) 11% (35) 8% (26) 1% (5) 100% (306)
mini-language 69% (107) 20% (32) 9% (14) 0% (0) 100% (153)
pure-perl 58% (89) 16% (26) 13% (21) 11% (17) 100% (153)
pure-perl,mini-language 69% (107) 16% (25) 9% (14) 4% (7) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 65% (167) 23% (59) 10% (27) 0% (2) 100% (255)
10 73% (187) 12% (32) 9% (24) 4% (12) 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 95% (43) 4% (2) 0% (0) 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 33% (15) 40% (18) 24% (11) 2% (1) 100% (45)
records_loop_template 86% (39) 13% (6) 0% (0) 0% (0) 100% (45)
records_loop_value 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
scalar_variable 24% (11) 28% (13) 35% (16) 11% (5) 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) 33% (15) 6% (3) 100% (45)
variable_if_else_template 28% (13) 37% (17) 22% (10) 11% (5) 100% (45)
variable_if_literal 28% (13) 31% (14) 22% (10) 17% (8) 100% (45)
variable_if_template 28% (13) 31% (14) 24% (11) 15% (7) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 55% (47) 44% (38) 0% (0) 0% (0) 100% (85)
uncached_disk 72% (62) 3% (3) 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 100% (15) 0% (0) 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 26% (4) 66% (10) 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)
10 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 25% (10) 5% (2) 0% (0) 70% (28) 100% (40)

Performance Drop-off Distribution by Comparable Engines

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

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 60% (3) 40% (2) 0% (0) 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.93)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 22% (57) 0% (0) 1% (3) 76% (195) 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) 2% (3) 97% (99) 100% (102)
not-pure-perl 2% (3) 0% (0) 0% (1) 96% (98) 100% (102)
not-pure-perl,mini-language 2% (3) 0% (0) 0% (1) 96% (98) 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)
10 21% (36) 0% (0) 0% (1) 78% (133) 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 33% (10) 0% (0) 6% (2) 60% (18) 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 27% (23) 11% (10) 3% (3) 57% (49) 100% (85)
uncached_string 22% (19) 0% (0) 12% (11) 64% (55) 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) 11% (4) 88% (30) 100% (34)
not-pure-perl 11% (4) 14% (5) 14% (5) 58% (20) 100% (34)
not-pure-perl,mini-language 11% (4) 14% (5) 14% (5) 58% (20) 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 40% (4) 0% (0) 30% (3) 30% (3) 100% (10)
records_loop_template 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)
records_loop_value 20% (2) 20% (2) 20% (2) 40% (4) 100% (10)
scalar_variable 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)
variable_expression 20% (2) 0% (0) 20% (2) 60% (6) 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) 20% (2) 0% (0) 60% (6) 100% (10)
variable_if_template 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)

MoTe, Mojo::Template (0.999921)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (72) 7% (26) 10% (39) 61% (223) 100% (360)
uncached_disk 35% (129) 61% (220) 3% (11) 0% (0) 100% (360)
uncached_string 24% (89) 44% (159) 29% (107) 1% (5) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 56% (243) 17% (75) 9% (42) 16% (72) 100% (432)
embedded-perl 7% (17) 56% (121) 17% (38) 18% (40) 100% (216)
pure-perl 6% (13) 40% (88) 18% (39) 35% (76) 100% (216)
pure-perl,embedded-perl 7% (17) 56% (121) 17% (38) 18% (40) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 25% (91) 37% (134) 21% (77) 16% (58) 100% (360)
10 26% (95) 39% (141) 10% (36) 24% (88) 100% (360)
30 28% (104) 36% (130) 12% (44) 22% (82) 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 22% (10) 37% (17) 17% (8) 22% (10) 100% (45)
array_variable_value 24% (11) 31% (14) 22% (10) 22% (10) 100% (45)
complex_variable_expression 37% (17) 20% (9) 28% (13) 13% (6) 100% (45)
constant_expression 20% (9) 24% (11) 31% (14) 24% (11) 100% (45)
constant_function 24% (11) 33% (15) 20% (9) 22% (10) 100% (45)
constant_if_else_literal 20% (9) 28% (13) 28% (13) 22% (10) 100% (45)
constant_if_else_template 26% (12) 55% (25) 0% (0) 17% (8) 100% (45)
constant_if_literal 20% (9) 46% (21) 11% (5) 22% (10) 100% (45)
constant_if_template 26% (12) 60% (27) 0% (0) 13% (6) 100% (45)
deep_data_structure_value 24% (11) 31% (14) 22% (10) 22% (10) 100% (45)
hash_loop_template 20% (9) 40% (18) 13% (6) 26% (12) 100% (45)
hash_loop_value 20% (9) 40% (18) 13% (6) 26% (12) 100% (45)
hash_variable_value 20% (9) 42% (19) 15% (7) 22% (10) 100% (45)
literal_text 71% (32) 2% (1) 15% (7) 11% (5) 100% (45)
records_loop_template 20% (9) 35% (16) 13% (6) 31% (14) 100% (45)
records_loop_value 20% (9) 35% (16) 13% (6) 31% (14) 100% (45)
scalar_variable 26% (12) 37% (17) 13% (6) 22% (10) 100% (45)
variable_expression 33% (15) 28% (13) 15% (7) 22% (10) 100% (45)
variable_function 24% (11) 26% (12) 26% (12) 22% (10) 100% (45)
variable_if_else_literal 24% (11) 44% (20) 8% (4) 22% (10) 100% (45)
variable_if_else_template 33% (15) 48% (22) 0% (0) 17% (8) 100% (45)
variable_if_literal 26% (12) 42% (19) 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 30% (36) 20% (24) 30% (37) 19% (23) 100% (120)
uncached_disk 60% (72) 33% (40) 6% (8) 0% (0) 100% (120)
uncached_string 30% (36) 31% (38) 35% (42) 3% (4) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (76) 18% (27) 24% (35) 4% (6) 100% (144)
embedded-perl 44% (32) 37% (27) 16% (12) 1% (1) 100% (72)
pure-perl 5% (4) 29% (21) 38% (28) 26% (19) 100% (72)
pure-perl,embedded-perl 44% (32) 37% (27) 16% (12) 1% (1) 100% (72)

Performance Drop-off Distribution by Feature

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

NT, NTS::Template (2.1)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 20% (45) 23% (52) 23% (53) 33% (75) 100% (225)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (45) 14% (13) 16% (15) 18% (17) 100% (90)
mini-language 0% (0) 57% (26) 42% (19) 0% (0) 100% (45)
pure-perl 0% (0) 11% (5) 37% (17) 51% (23) 100% (45)
pure-perl,mini-language 0% (0) 17% (8) 4% (2) 77% (35) 100% (45)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (15) 6% (5) 18% (14) 54% (41) 100% (75)
10 20% (15) 26% (20) 28% (21) 25% (19) 100% (75)
30 20% (15) 36% (27) 24% (18) 20% (15) 100% (75)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 20% (3) 20% (3) 40% (6) 100% (15)
array_loop_value 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
constant_if_else_literal 20% (3) 20% (3) 0% (0) 60% (9) 100% (15)
constant_if_else_template 20% (3) 33% (5) 20% (3) 26% (4) 100% (15)
constant_if_literal 20% (3) 20% (3) 0% (0) 60% (9) 100% (15)
constant_if_template 20% (3) 33% (5) 20% (3) 26% (4) 100% (15)
deep_data_structure_value 20% (3) 13% (2) 33% (5) 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) 33% (5) 26% (4) 20% (3) 100% (15)
variable_if_else_literal 20% (3) 13% (2) 26% (4) 40% (6) 100% (15)
variable_if_else_template 20% (3) 60% (9) 13% (2) 6% (1) 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 94% (71) 5% (4) 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 73% (11) 26% (4) 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 80% (4) 20% (1) 0% (0) 0% (0) 100% (5)
constant_if_else_template 80% (4) 20% (1) 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 20% (53) 3% (9) 34% (89) 40% (104) 100% (255)
memory_cache 24% (63) 18% (48) 18% (48) 37% (96) 100% (255)
uncached_string 20% (51) 8% (21) 50% (129) 21% (54) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (156) 5% (18) 19% (59) 23% (73) 100% (306)
mini-language 2% (4) 12% (19) 51% (79) 33% (51) 100% (153)
pure-perl 1% (3) 15% (23) 34% (53) 48% (74) 100% (153)
pure-perl,mini-language 2% (4) 11% (18) 49% (75) 36% (56) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (51) 0% (2) 27% (70) 51% (132) 100% (255)
10 20% (51) 10% (28) 40% (102) 29% (74) 100% (255)
30 25% (65) 18% (48) 36% (94) 18% (48) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 20% (9) 20% (9) 40% (18) 20% (9) 100% (45)
constant_expression 20% (9) 20% (9) 37% (17) 22% (10) 100% (45)
constant_function 24% (11) 37% (17) 13% (6) 24% (11) 100% (45)
constant_if_else_literal 20% (9) 0% (0) 31% (14) 48% (22) 100% (45)
constant_if_else_template 20% (9) 0% (0) 40% (18) 40% (18) 100% (45)
constant_if_literal 20% (9) 6% (3) 40% (18) 33% (15) 100% (45)
constant_if_template 20% (9) 0% (0) 44% (20) 35% (16) 100% (45)
literal_text 20% (9) 0% (0) 4% (2) 75% (34) 100% (45)
records_loop_template 20% (9) 20% (9) 33% (15) 26% (12) 100% (45)
records_loop_value 20% (9) 20% (9) 35% (16) 24% (11) 100% (45)
scalar_variable 20% (9) 8% (4) 37% (17) 33% (15) 100% (45)
variable_expression 20% (9) 4% (2) 31% (14) 44% (20) 100% (45)
variable_function 20% (9) 8% (4) 48% (22) 22% (10) 100% (45)
variable_if_else_literal 20% (9) 13% (6) 31% (14) 35% (16) 100% (45)
variable_if_else_template 28% (13) 4% (2) 44% (20) 22% (10) 100% (45)
variable_if_literal 28% (13) 4% (2) 35% (16) 31% (14) 100% (45)
variable_if_template 28% (13) 4% (2) 42% (19) 24% (11) 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 71% (61) 25% (22) 2% (2) 0% (0) 100% (85)
uncached_string 34% (29) 50% (43) 10% (9) 4% (4) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 67% (69) 29% (30) 0% (1) 1% (2) 100% (102)
mini-language 25% (13) 70% (36) 0% (0) 3% (2) 100% (51)
pure-perl 35% (18) 58% (30) 1% (1) 3% (2) 100% (51)
pure-perl,mini-language 21% (11) 37% (19) 37% (19) 3% (2) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 46% (7) 40% (6) 13% (2) 0% (0) 100% (15)
constant_expression 33% (5) 60% (9) 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 33% (5) 60% (9) 6% (1) 0% (0) 100% (15)
constant_if_literal 20% (3) 73% (11) 6% (1) 0% (0) 100% (15)
constant_if_template 60% (9) 33% (5) 6% (1) 0% (0) 100% (15)
literal_text 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)
records_loop_template 33% (5) 53% (8) 13% (2) 0% (0) 100% (15)
records_loop_value 33% (5) 53% (8) 13% (2) 0% (0) 100% (15)
scalar_variable 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_expression 46% (7) 40% (6) 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 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_if_literal 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
variable_if_template 46% (7) 46% (7) 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% (46) 42% (148) 43% (149) 100% (345)
instance_reuse 65% (227) 21% (74) 12% (44) 0% (0) 100% (345)
uncached_string 21% (73) 14% (50) 27% (94) 37% (128) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 41% (172) 10% (42) 30% (128) 17% (72) 100% (414)
mini-language 20% (43) 7% (15) 38% (80) 33% (69) 100% (207)
pure-perl 21% (45) 31% (66) 13% (28) 32% (68) 100% (207)
pure-perl,mini-language 20% (42) 22% (47) 24% (50) 32% (68) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (69) 15% (52) 23% (80) 41% (144) 100% (345)
10 32% (112) 16% (58) 25% (87) 25% (88) 100% (345)
30 35% (121) 17% (60) 34% (119) 13% (45) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 40% (18) 31% (14) 28% (13) 0% (0) 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 31% (14) 4% (2) 26% (12) 37% (17) 100% (45)
constant_if_else_literal 24% (11) 11% (5) 13% (6) 51% (23) 100% (45)
constant_if_else_template 31% (14) 8% (4) 24% (11) 35% (16) 100% (45)
constant_if_literal 24% (11) 11% (5) 17% (8) 46% (21) 100% (45)
constant_if_template 31% (14) 8% (4) 15% (7) 44% (20) 100% (45)
deep_data_structure_value 11% (5) 24% (11) 46% (21) 17% (8) 100% (45)
hash_loop_template 37% (17) 31% (14) 17% (8) 13% (6) 100% (45)
hash_loop_value 37% (17) 26% (12) 20% (9) 15% (7) 100% (45)
hash_variable_value 28% (13) 6% (3) 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 42% (19) 24% (11) 28% (13) 4% (2) 100% (45)
scalar_variable 28% (13) 15% (7) 28% (13) 26% (12) 100% (45)
variable_expression 11% (5) 20% (9) 31% (14) 37% (17) 100% (45)
variable_function 28% (13) 15% (7) 17% (8) 37% (17) 100% (45)
variable_if_else_literal 28% (13) 6% (3) 35% (16) 28% (13) 100% (45)
variable_if_else_template 31% (14) 8% (4) 42% (19) 17% (8) 100% (45)
variable_if_literal 28% (13) 6% (3) 37% (17) 26% (12) 100% (45)
variable_if_template 31% (14) 8% (4) 42% (19) 17% (8) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 43% (50) 42% (49) 4% (5) 9% (11) 100% (115)
instance_reuse 57% (66) 25% (29) 15% (18) 1% (2) 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 61% (85) 15% (22) 12% (17) 10% (14) 100% (138)
mini-language 73% (51) 21% (15) 4% (3) 0% (0) 100% (69)
pure-perl 75% (52) 21% (15) 1% (1) 1% (1) 100% (69)
pure-perl,mini-language 50% (35) 43% (30) 4% (3) 1% (1) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 93% (14) 6% (1) 0% (0) 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 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_if_template 60% (9) 33% (5) 6% (1) 0% (0) 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) 20% (3) 46% (7) 26% (4) 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 80% (12) 13% (2) 6% (1) 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 52% (181) 31% (107) 16% (57) 0% (0) 100% (345)
instance_reuse 17% (61) 38% (132) 40% (138) 4% (14) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 42% (116) 27% (77) 28% (78) 1% (5) 100% (276)
mini-language 24% (34) 49% (68) 23% (32) 2% (4) 100% (138)
pure-perl 28% (40) 47% (66) 23% (32) 0% (0) 100% (138)
pure-perl,mini-language 37% (52) 20% (28) 38% (53) 3% (5) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 18% (42) 33% (78) 47% (110) 0% (0) 100% (230)
10 36% (83) 41% (95) 20% (46) 2% (6) 100% (230)
30 50% (117) 28% (66) 16% (39) 3% (8) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 62% (72) 29% (34) 4% (5) 3% (4) 100% (115)
instance_reuse 34% (40) 33% (38) 21% (25) 10% (12) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 44% (41) 19% (18) 20% (19) 15% (14) 100% (92)
mini-language 56% (26) 41% (19) 2% (1) 0% (0) 100% (46)
pure-perl 63% (29) 32% (15) 2% (1) 2% (1) 100% (46)
pure-perl,mini-language 34% (16) 43% (20) 19% (9) 2% (1) 100% (46)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 30% (3) 40% (4) 20% (2) 10% (1) 100% (10)
array_loop_value 60% (6) 20% (2) 20% (2) 0% (0) 100% (10)
array_variable_value 50% (5) 30% (3) 20% (2) 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 0% (0) 40% (4) 30% (3) 30% (3) 100% (10)
constant_if_else_template 50% (5) 30% (3) 10% (1) 10% (1) 100% (10)
constant_if_literal 0% (0) 50% (5) 30% (3) 20% (2) 100% (10)
constant_if_template 0% (0) 70% (7) 20% (2) 10% (1) 100% (10)
deep_data_structure_value 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
hash_loop_template 70% (7) 20% (2) 10% (1) 0% (0) 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 60% (6) 30% (3) 10% (1) 0% (0) 100% (10)
records_loop_template 80% (8) 10% (1) 10% (1) 0% (0) 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 50% (5) 30% (3) 10% (1) 10% (1) 100% (10)
variable_if_literal 10% (1) 60% (6) 10% (1) 20% (2) 100% (10)
variable_if_template 0% (0) 70% (7) 10% (1) 20% (2) 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 14% (50) 57% (200) 26% (90) 1% (5) 100% (345)
instance_reuse 7% (25) 25% (87) 17% (59) 50% (174) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 7% (21) 46% (127) 17% (48) 28% (80) 100% (276)
mini-language 15% (21) 41% (57) 25% (35) 18% (25) 100% (138)
pure-perl 16% (23) 40% (56) 29% (41) 13% (18) 100% (138)
pure-perl,mini-language 7% (10) 34% (47) 18% (25) 40% (56) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (0) 24% (56) 37% (87) 37% (87) 100% (230)
10 12% (28) 47% (110) 18% (43) 21% (49) 100% (230)
30 20% (47) 52% (121) 8% (19) 18% (43) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 89% (103) 6% (8) 3% (4) 0% (0) 100% (115)
instance_reuse 80% (93) 12% (14) 6% (8) 0% (0) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (69) 15% (14) 9% (9) 0% (0) 100% (92)
mini-language 95% (44) 2% (1) 2% (1) 0% (0) 100% (46)
pure-perl 93% (43) 4% (2) 2% (1) 0% (0) 100% (46)
pure-perl,mini-language 86% (40) 10% (5) 2% (1) 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 50% (5) 40% (4) 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 40% (4) 10% (1) 50% (5) 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 60% (6) 20% (2) 20% (2) 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 80% (8) 20% (2) 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) 10% (35) 17% (60) 72% (250) 100% (345)
instance_reuse 29% (103) 33% (117) 16% (58) 19% (67) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 13% (36) 21% (60) 16% (45) 48% (135) 100% (276)
mini-language 23% (32) 14% (20) 13% (19) 48% (67) 100% (138)
pure-perl 13% (19) 31% (44) 19% (27) 34% (48) 100% (138)
pure-perl,mini-language 11% (16) 20% (28) 19% (27) 48% (67) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 5% (13) 7% (17) 14% (34) 72% (166) 100% (230)
10 12% (28) 33% (77) 13% (31) 40% (94) 100% (230)
30 26% (62) 25% (58) 23% (53) 24% (57) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 83% (96) 10% (12) 6% (7) 0% (0) 100% (115)
instance_reuse 93% (107) 2% (3) 0% (1) 3% (4) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 83% (77) 8% (8) 5% (5) 2% (2) 100% (92)
mini-language 91% (42) 4% (2) 2% (1) 2% (1) 100% (46)
pure-perl 91% (42) 4% (2) 4% (2) 0% (0) 100% (46)
pure-perl,mini-language 91% (42) 6% (3) 0% (0) 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 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 40% (4) 50% (5) 10% (1) 0% (0) 100% (10)
constant_if_else_literal 100% (10) 0% (0) 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 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
literal_text 0% (0) 10% (1) 50% (5) 40% (4) 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.03) without caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 26% (96) 18% (66) 31% (114) 23% (84) 100% (360)
uncached_disk 55% (199) 37% (135) 3% (11) 4% (15) 100% (360)
uncached_string 22% (82) 49% (179) 24% (87) 3% (12) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 57% (249) 25% (109) 16% (71) 0% (3) 100% (432)
mini-language 23% (51) 30% (66) 28% (62) 17% (37) 100% (216)
pure-perl 11% (25) 55% (120) 32% (70) 0% (1) 100% (216)
pure-perl,mini-language 24% (52) 39% (85) 4% (9) 32% (70) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 35% (128) 38% (140) 20% (72) 5% (20) 100% (360)
10 33% (122) 32% (117) 20% (72) 13% (49) 100% (360)
30 35% (127) 34% (123) 18% (68) 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 48% (22) 26% (12) 17% (8) 6% (3) 100% (45)
complex_variable_expression 26% (12) 40% (18) 20% (9) 13% (6) 100% (45)
constant_expression 24% (11) 35% (16) 17% (8) 22% (10) 100% (45)
constant_function 46% (21) 31% (14) 8% (4) 13% (6) 100% (45)
constant_if_else_literal 28% (13) 42% (19) 28% (13) 0% (0) 100% (45)
constant_if_else_template 31% (14) 37% (17) 24% (11) 6% (3) 100% (45)
constant_if_literal 28% (13) 26% (12) 44% (20) 0% (0) 100% (45)
constant_if_template 31% (14) 35% (16) 26% (12) 6% (3) 100% (45)
deep_data_structure_value 28% (13) 42% (19) 20% (9) 8% (4) 100% (45)
hash_loop_template 46% (21) 15% (7) 13% (6) 24% (11) 100% (45)
hash_loop_value 42% (19) 24% (11) 11% (5) 22% (10) 100% (45)
hash_variable_value 26% (12) 42% (19) 24% (11) 6% (3) 100% (45)
literal_text 35% (16) 48% (22) 15% (7) 0% (0) 100% (45)
records_loop_template 37% (17) 26% (12) 22% (10) 13% (6) 100% (45)
records_loop_value 31% (14) 37% (17) 17% (8) 13% (6) 100% (45)
scalar_variable 35% (16) 40% (18) 20% (9) 4% (2) 100% (45)
variable_expression 26% (12) 37% (17) 22% (10) 13% (6) 100% (45)
variable_function 26% (12) 51% (23) 8% (4) 13% (6) 100% (45)
variable_if_else_literal 37% (17) 40% (18) 17% (8) 4% (2) 100% (45)
variable_if_else_template 37% (17) 44% (20) 11% (5) 6% (3) 100% (45)
variable_if_literal 35% (16) 42% (19) 17% (8) 4% (2) 100% (45)
variable_if_template 37% (17) 40% (18) 15% (7) 6% (3) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (25) 36% (44) 15% (18) 27% (33) 100% (120)
uncached_disk 48% (58) 34% (41) 5% (6) 12% (15) 100% (120)
uncached_string 60% (73) 34% (41) 5% (6) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 73% (106) 22% (33) 0% (1) 2% (4) 100% (144)
mini-language 20% (15) 55% (40) 19% (14) 4% (3) 100% (72)
pure-perl 34% (25) 50% (36) 9% (7) 5% (4) 100% (72)
pure-perl,mini-language 13% (10) 23% (17) 11% (8) 51% (37) 100% (72)

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 31% (113) 30% (109) 21% (79) 16% (59) 100% (360)
memory_cache 1% (4) 25% (90) 20% (74) 53% (192) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 25% (73) 17% (50) 17% (49) 40% (116) 100% (288)
mini-language 2% (4) 36% (52) 27% (39) 34% (49) 100% (144)
pure-perl 10% (15) 34% (49) 28% (41) 27% (39) 100% (144)
pure-perl,mini-language 17% (25) 33% (48) 16% (24) 32% (47) 100% (144)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 23% (57) 38% (92) 12% (29) 25% (62) 100% (240)
10 13% (33) 25% (62) 27% (67) 32% (78) 100% (240)
30 11% (27) 18% (45) 23% (57) 46% (111) 100% (240)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 10% (3) 10% (3) 30% (9) 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 30% (9) 13% (4) 6% (2) 50% (15) 100% (30)
constant_if_else_literal 20% (6) 20% (6) 30% (9) 30% (9) 100% (30)
constant_if_else_template 16% (5) 13% (4) 26% (8) 43% (13) 100% (30)
constant_if_literal 20% (6) 16% (5) 13% (4) 50% (15) 100% (30)
constant_if_template 16% (5) 13% (4) 20% (6) 50% (15) 100% (30)
deep_data_structure_value 10% (3) 40% (12) 26% (8) 23% (7) 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 20% (6) 70% (21) 0% (0) 10% (3) 100% (30)
records_loop_template 10% (3) 20% (6) 46% (14) 23% (7) 100% (30)
records_loop_value 10% (3) 26% (8) 40% (12) 23% (7) 100% (30)
scalar_variable 30% (9) 53% (16) 6% (2) 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 20% (6) 63% (19) 6% (2) 10% (3) 100% (30)
variable_if_else_template 16% (5) 53% (16) 10% (3) 20% (6) 100% (30)
variable_if_literal 20% (6) 63% (19) 6% (2) 10% (3) 100% (30)
variable_if_template 16% (5) 53% (16) 10% (3) 20% (6) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (1) 0% (0) 2% (3) 96% (116) 100% (120)
memory_cache 15% (19) 16% (20) 20% (24) 47% (57) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 11% (11) 5% (5) 7% (7) 76% (73) 100% (96)
mini-language 6% (3) 10% (5) 12% (6) 70% (34) 100% (48)
pure-perl 6% (3) 10% (5) 16% (8) 66% (32) 100% (48)
pure-perl,mini-language 6% (3) 10% (5) 12% (6) 70% (34) 100% (48)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 50% (5) 0% (0) 0% (0) 50% (5) 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 0% (0) 0% (0) 0% (0) 100% (10) 100% (10)
constant_function 10% (1) 0% (0) 20% (2) 70% (7) 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 0% (0) 0% (0) 20% (2) 80% (8) 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.03) with CHI (0.34) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (0) 20% (75) 22% (82) 56% (203) 100% (360)
memory_cache 56% (204) 28% (104) 12% (44) 2% (8) 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) 9% (42) 10% (44) 24% (106) 100% (432)
mini-language 52% (114) 20% (45) 9% (21) 16% (36) 100% (216)
pure-perl 44% (96) 21% (47) 16% (36) 17% (37) 100% (216)
pure-perl,mini-language 52% (114) 20% (45) 11% (25) 14% (32) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 53% (192) 25% (93) 13% (48) 7% (27) 100% (360)
10 51% (186) 12% (45) 16% (58) 19% (71) 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) 11% (5) 26% (12) 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) 17% (8) 13% (6) 28% (13) 100% (45)
constant_function 40% (18) 8% (4) 17% (8) 33% (15) 100% (45)
constant_if_else_literal 40% (18) 26% (12) 15% (7) 17% (8) 100% (45)
constant_if_else_template 40% (18) 31% (14) 13% (6) 15% (7) 100% (45)
constant_if_literal 40% (18) 17% (8) 15% (7) 26% (12) 100% (45)
constant_if_template 40% (18) 26% (12) 17% (8) 15% (7) 100% (45)
deep_data_structure_value 62% (28) 11% (5) 2% (1) 24% (11) 100% (45)
hash_loop_template 53% (24) 13% (6) 8% (4) 24% (11) 100% (45)
hash_loop_value 53% (24) 8% (4) 13% (6) 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) 17% (8) 8% (4) 24% (11) 100% (45)
scalar_variable 66% (30) 8% (4) 17% (8) 6% (3) 100% (45)
variable_expression 40% (18) 31% (14) 13% (6) 15% (7) 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) 8% (4) 15% (7) 100% (45)
variable_if_literal 66% (30) 8% (4) 8% (4) 15% (7) 100% (45)
variable_if_template 66% (30) 8% (4) 8% (4) 15% (7) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (24) 5% (6) 45% (54) 30% (36) 100% (120)
memory_cache 60% (73) 8% (10) 23% (28) 7% (9) 100% (120)
shared_memory_cache 20% (25) 0% (0) 0% (0) 79% (95) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 47% (69) 2% (4) 15% (23) 33% (48) 100% (144)
mini-language 25% (18) 5% (4) 29% (21) 40% (29) 100% (72)
pure-perl 23% (17) 5% (4) 33% (24) 37% (27) 100% (72)
pure-perl,mini-language 25% (18) 5% (4) 19% (14) 50% (36) 100% (72)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 73% (11) 0% (0) 13% (2) 13% (2) 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 6% (1) 13% (2) 0% (0) 80% (12) 100% (15)
constant_if_else_literal 13% (2) 0% (0) 26% (4) 60% (9) 100% (15)
constant_if_else_template 13% (2) 0% (0) 53% (8) 33% (5) 100% (15)
constant_if_literal 46% (7) 0% (0) 13% (2) 40% (6) 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 40% (6) 0% (0) 13% (2) 46% (7) 100% (15)
hash_loop_value 40% (6) 0% (0) 13% (2) 46% (7) 100% (15)
hash_variable_value 40% (6) 0% (0) 20% (3) 40% (6) 100% (15)
literal_text 73% (11) 20% (3) 6% (1) 0% (0) 100% (15)
records_loop_template 13% (2) 26% (4) 20% (3) 40% (6) 100% (15)
records_loop_value 46% (7) 26% (4) 20% (3) 6% (1) 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.03) with Cache::FastMmap (1.34) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
shared_memory_cache 1% (5) 0% (0) 0% (0) 98% (355) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 1% (2) 0% (0) 0% (0) 98% (142) 100% (144)
mini-language 1% (1) 0% (0) 0% (0) 98% (71) 100% (72)
pure-perl 1% (1) 0% (0) 0% (0) 98% (71) 100% (72)
pure-perl,mini-language 1% (1) 0% (0) 0% (0) 98% (71) 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)
10 4% (5) 0% (0) 0% (0) 95% (115) 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 33% (5) 0% (0) 0% (0) 66% (10) 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 91% (110) 0% (0) 0% (0) 8% (10) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 91% (44) 0% (0) 0% (0) 8% (4) 100% (48)
mini-language 91% (22) 0% (0) 0% (0) 8% (2) 100% (24)
pure-perl 91% (22) 0% (0) 0% (0) 8% (2) 100% (24)
pure-perl,mini-language 91% (22) 0% (0) 0% (0) 8% (2) 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 0% (0) 0% (0) 0% (0) 100% (5) 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 95% (328) 4% (17) 0% (0) 0% (0) 100% (345)
instance_reuse 87% (302) 11% (38) 0% (1) 1% (4) 100% (345)
uncached_string 97% (335) 2% (7) 0% (3) 0% (0) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 94% (393) 4% (20) 0% (1) 0% (0) 100% (414)
mini-language 96% (199) 3% (8) 0% (0) 0% (0) 100% (207)
pure-perl 92% (191) 6% (14) 0% (2) 0% (0) 100% (207)
pure-perl,mini-language 87% (182) 9% (20) 0% (1) 1% (4) 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)
10 96% (333) 3% (11) 0% (0) 0% (1) 100% (345)
30 83% (288) 14% (50) 1% (4) 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 82% (37) 13% (6) 2% (1) 2% (1) 100% (45)
constant_if_else_literal 93% (42) 6% (3) 0% (0) 0% (0) 100% (45)
constant_if_else_template 84% (38) 15% (7) 0% (0) 0% (0) 100% (45)
constant_if_literal 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
constant_if_template 93% (42) 6% (3) 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 82% (37) 11% (5) 6% (3) 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 100% (45) 0% (0) 0% (0) 0% (0) 100% (45)
variable_expression 91% (41) 6% (3) 0% (0) 2% (1) 100% (45)
variable_function 97% (44) 2% (1) 0% (0) 0% (0) 100% (45)
variable_if_else_literal 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
variable_if_else_template 86% (39) 13% (6) 0% (0) 0% (0) 100% (45)
variable_if_literal 91% (41) 8% (4) 0% (0) 0% (0) 100% (45)
variable_if_template 95% (43) 4% (2) 0% (0) 0% (0) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 18% (21) 15% (18) 55% (64) 10% (12) 100% (115)
instance_reuse 27% (32) 28% (33) 17% (20) 26% (30) 100% (115)
uncached_string 26% (31) 38% (44) 23% (27) 11% (13) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 48% (67) 28% (39) 16% (23) 6% (9) 100% (138)
mini-language 8% (6) 28% (20) 59% (41) 2% (2) 100% (69)
pure-perl 11% (8) 43% (30) 33% (23) 11% (8) 100% (69)
pure-perl,mini-language 4% (3) 8% (6) 34% (24) 52% (36) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 53% (8) 13% (2) 13% (2) 100% (15)
array_loop_value 33% (5) 40% (6) 20% (3) 6% (1) 100% (15)
array_variable_value 20% (3) 40% (6) 26% (4) 13% (2) 100% (15)
complex_variable_expression 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
constant_expression 13% (2) 6% (1) 40% (6) 40% (6) 100% (15)
constant_if_else_literal 13% (2) 0% (0) 40% (6) 46% (7) 100% (15)
constant_if_else_template 20% (3) 13% (2) 40% (6) 26% (4) 100% (15)
constant_if_literal 0% (0) 20% (3) 53% (8) 26% (4) 100% (15)
constant_if_template 13% (2) 6% (1) 60% (9) 20% (3) 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 20% (3) 26% (4) 26% (4) 26% (4) 100% (15)
records_loop_template 40% (6) 40% (6) 20% (3) 0% (0) 100% (15)
records_loop_value 40% (6) 40% (6) 20% (3) 0% (0) 100% (15)
scalar_variable 13% (2) 33% (5) 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 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
variable_if_literal 20% (3) 20% (3) 40% (6) 20% (3) 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 20% (69) 43% (151) 3% (11) 33% (114) 100% (345)
instance_reuse 12% (44) 43% (149) 15% (55) 28% (97) 100% (345)
uncached_string 60% (207) 39% (136) 0% (2) 0% (0) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 20% (85) 38% (160) 9% (39) 31% (130) 100% (414)
mini-language 46% (97) 29% (62) 14% (29) 9% (19) 100% (207)
not-pure-perl 33% (69) 51% (107) 0% (0) 14% (31) 100% (207)
not-pure-perl,mini-language 33% (69) 51% (107) 0% (0) 14% (31) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 42% (147) 40% (141) 1% (6) 14% (51) 100% (345)
10 28% (100) 45% (156) 7% (27) 17% (62) 100% (345)
30 21% (73) 40% (139) 10% (35) 28% (98) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (15) 42% (19) 11% (5) 13% (6) 100% (45)
array_loop_value 33% (15) 46% (21) 6% (3) 13% (6) 100% (45)
array_variable_value 15% (7) 53% (24) 11% (5) 20% (9) 100% (45)
complex_variable_expression 28% (13) 48% (22) 4% (2) 17% (8) 100% (45)
constant_expression 35% (16) 42% (19) 8% (4) 13% (6) 100% (45)
constant_if_else_literal 33% (15) 42% (19) 4% (2) 20% (9) 100% (45)
constant_if_else_template 28% (13) 42% (19) 2% (1) 26% (12) 100% (45)
constant_if_literal 26% (12) 55% (25) 0% (0) 17% (8) 100% (45)
constant_if_template 35% (16) 37% (17) 8% (4) 17% (8) 100% (45)
deep_data_structure_value 20% (9) 46% (21) 13% (6) 20% (9) 100% (45)
hash_loop_template 31% (14) 15% (7) 6% (3) 46% (21) 100% (45)
hash_loop_value 31% (14) 20% (9) 2% (1) 46% (21) 100% (45)
hash_variable_value 13% (6) 57% (26) 11% (5) 17% (8) 100% (45)
literal_text 33% (15) 42% (19) 4% (2) 20% (9) 100% (45)
records_loop_template 31% (14) 44% (20) 11% (5) 13% (6) 100% (45)
records_loop_value 35% (16) 46% (21) 6% (3) 11% (5) 100% (45)
scalar_variable 33% (15) 48% (22) 2% (1) 15% (7) 100% (45)
variable_expression 35% (16) 44% (20) 6% (3) 13% (6) 100% (45)
variable_function 37% (17) 26% (12) 6% (3) 28% (13) 100% (45)
variable_if_else_literal 35% (16) 44% (20) 2% (1) 17% (8) 100% (45)
variable_if_else_template 33% (15) 37% (17) 8% (4) 20% (9) 100% (45)
variable_if_literal 31% (14) 46% (21) 2% (1) 20% (9) 100% (45)
variable_if_template 37% (17) 35% (16) 8% (4) 17% (8) 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 18% (21) 20% (23) 10% (12) 51% (59) 100% (115)
uncached_string 57% (66) 32% (37) 10% (12) 0% (0) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 22% (31) 39% (55) 15% (21) 22% (31) 100% (138)
mini-language 7% (5) 15% (11) 40% (28) 36% (25) 100% (69)
not-pure-perl 44% (31) 40% (28) 0% (0) 14% (10) 100% (69)
not-pure-perl,mini-language 44% (31) 40% (28) 0% (0) 14% (10) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (5) 53% (8) 13% (2) 0% (0) 100% (15)
array_loop_value 40% (6) 46% (7) 13% (2) 0% (0) 100% (15)
array_variable_value 0% (0) 53% (8) 26% (4) 20% (3) 100% (15)
complex_variable_expression 20% (3) 40% (6) 20% (3) 20% (3) 100% (15)
constant_expression 26% (4) 26% (4) 20% (3) 26% (4) 100% (15)
constant_if_else_literal 26% (4) 13% (2) 26% (4) 33% (5) 100% (15)
constant_if_else_template 20% (3) 26% (4) 6% (1) 46% (7) 100% (15)
constant_if_literal 26% (4) 33% (5) 20% (3) 20% (3) 100% (15)
constant_if_template 20% (3) 26% (4) 6% (1) 46% (7) 100% (15)
deep_data_structure_value 33% (5) 46% (7) 13% (2) 6% (1) 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) 53% (8) 13% (2) 26% (4) 100% (15)
literal_text 46% (7) 40% (6) 13% (2) 0% (0) 100% (15)
records_loop_template 33% (5) 40% (6) 26% (4) 0% (0) 100% (15)
records_loop_value 33% (5) 46% (7) 20% (3) 0% (0) 100% (15)
scalar_variable 20% (3) 33% (5) 13% (2) 33% (5) 100% (15)
variable_expression 20% (3) 40% (6) 20% (3) 20% (3) 100% (15)
variable_function 46% (7) 26% (4) 20% (3) 6% (1) 100% (15)
variable_if_else_literal 20% (3) 33% (5) 0% (0) 46% (7) 100% (15)
variable_if_else_template 20% (3) 33% (5) 0% (0) 46% (7) 100% (15)
variable_if_literal 20% (3) 33% (5) 0% (0) 46% (7) 100% (15)
variable_if_template 20% (3) 33% (5) 0% (0) 46% (7) 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 63% (219) 35% (124) 0% (1) 0% (1) 100% (345)
instance_reuse 46% (160) 35% (121) 16% (57) 2% (7) 100% (345)
uncached_string 3% (11) 70% (243) 6% (22) 20% (69) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 20% (85) 55% (229) 5% (24) 18% (76) 100% (414)
mini-language 36% (75) 44% (93) 18% (38) 0% (1) 100% (207)
not-pure-perl 55% (115) 40% (83) 4% (9) 0% (0) 100% (207)
not-pure-perl,mini-language 55% (115) 40% (83) 4% (9) 0% (0) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 48% (167) 41% (142) 2% (8) 8% (28) 100% (345)
10 39% (135) 45% (158) 8% (28) 6% (24) 100% (345)
30 25% (88) 54% (188) 12% (44) 7% (25) 100% (345)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 6% (8) 16% (19) 15% (18) 60% (70) 100% (115)
instance_reuse 24% (28) 37% (43) 18% (21) 20% (23) 100% (115)
uncached_string 2% (3) 37% (43) 14% (17) 45% (52) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 6% (9) 21% (30) 20% (28) 51% (71) 100% (138)
mini-language 2% (2) 1% (1) 31% (22) 63% (44) 100% (69)
not-pure-perl 20% (14) 53% (37) 4% (3) 21% (15) 100% (69)
not-pure-perl,mini-language 20% (14) 53% (37) 4% (3) 21% (15) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 0% (0) 33% (5) 20% (3) 46% (7) 100% (15)
array_loop_value 13% (2) 33% (5) 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 13% (2) 40% (6) 26% (4) 20% (3) 100% (15)
constant_if_else_literal 13% (2) 40% (6) 20% (3) 26% (4) 100% (15)
constant_if_else_template 0% (0) 33% (5) 0% (0) 66% (10) 100% (15)
constant_if_literal 6% (1) 33% (5) 20% (3) 40% (6) 100% (15)
constant_if_template 0% (0) 33% (5) 0% (0) 66% (10) 100% (15)
deep_data_structure_value 13% (2) 13% (2) 20% (3) 53% (8) 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 13% (2) 6% (1) 26% (4) 53% (8) 100% (15)
literal_text 66% (10) 26% (4) 6% (1) 0% (0) 100% (15)
records_loop_template 0% (0) 46% (7) 26% (4) 26% (4) 100% (15)
records_loop_value 0% (0) 46% (7) 26% (4) 26% (4) 100% (15)
scalar_variable 13% (2) 20% (3) 20% (3) 46% (7) 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) 33% (5) 0% (0) 66% (10) 100% (15)
variable_if_else_template 0% (0) 33% (5) 0% (0) 66% (10) 100% (15)
variable_if_literal 0% (0) 53% (8) 0% (0) 46% (7) 100% (15)
variable_if_template 0% (0) 33% (5) 0% (0) 66% (10) 100% (15)

TTiny, Template::Tiny (0.11)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_string 39% (77) 17% (34) 0% (0) 43% (84) 100% (195)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 62% (49) 10% (8) 0% (0) 26% (21) 100% (78)
mini-language 20% (8) 25% (10) 0% (0) 53% (21) 100% (39)
pure-perl 35% (14) 10% (4) 0% (0) 53% (21) 100% (39)
pure-perl,mini-language 15% (6) 30% (12) 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)
10 35% (23) 40% (26) 0% (0) 24% (16) 100% (65)
30 63% (41) 12% (8) 0% (0) 24% (16) 100% (65)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 46% (7) 26% (4) 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 33% (5) 40% (6) 0% (0) 26% (4) 100% (15)
records_loop_value 33% (5) 40% (6) 0% (0) 26% (4) 100% (15)
scalar_variable 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
variable_if_else_literal 53% (8) 20% (3) 0% (0) 26% (4) 100% (15)
variable_if_else_template 60% (9) 13% (2) 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.1)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 23% (79) 12% (40) 3% (11) 60% (200) 100% (330)
uncached_disk 40% (132) 14% (48) 7% (24) 38% (126) 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) 5% (21) 1% (7) 42% (170) 100% (396)
mini-language 1% (3) 9% (19) 15% (31) 73% (145) 100% (198)
not-pure-perl 20% (41) 12% (24) 11% (23) 55% (110) 100% (198)
not-pure-perl,mini-language 20% (41) 12% (24) 11% (23) 55% (110) 100% (198)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 28% (95) 13% (46) 8% (29) 48% (160) 100% (330)
10 28% (93) 6% (21) 8% (28) 56% (188) 100% (330)
30 28% (95) 6% (21) 8% (27) 56% (187) 100% (330)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (9) 0% (0) 0% (0) 80% (36) 100% (45)
array_loop_value 20% (9) 0% (0) 0% (0) 80% (36) 100% (45)
array_variable_value 33% (15) 4% (2) 0% (0) 62% (28) 100% (45)
complex_variable_expression 33% (15) 0% (0) 20% (9) 46% (21) 100% (45)
constant_expression 33% (15) 4% (2) 24% (11) 37% (17) 100% (45)
constant_function 57% (26) 6% (3) 8% (4) 26% (12) 100% (45)
constant_if_else_literal 37% (17) 13% (6) 20% (9) 28% (13) 100% (45)
constant_if_else_template 37% (17) 4% (2) 24% (11) 33% (15) 100% (45)
constant_if_literal 33% (15) 4% (2) 28% (13) 33% (15) 100% (45)
constant_if_template 33% (15) 4% (2) 20% (9) 42% (19) 100% (45)
deep_data_structure_value 33% (15) 0% (0) 4% (2) 62% (28) 100% (45)
hash_variable_value 33% (15) 4% (2) 0% (0) 62% (28) 100% (45)
literal_text 20% (9) 24% (11) 2% (1) 53% (24) 100% (45)
records_loop_template 20% (9) 13% (6) 0% (0) 66% (30) 100% (45)
records_loop_value 20% (9) 13% (6) 0% (0) 66% (30) 100% (45)
scalar_variable 20% (9) 17% (8) 0% (0) 62% (28) 100% (45)
variable_expression 33% (15) 4% (2) 20% (9) 42% (19) 100% (45)
variable_function 28% (13) 4% (2) 13% (6) 53% (24) 100% (45)
variable_if_else_literal 20% (9) 17% (8) 0% (0) 62% (28) 100% (45)
variable_if_else_template 20% (9) 17% (8) 0% (0) 62% (28) 100% (45)
variable_if_literal 20% (9) 17% (8) 0% (0) 62% (28) 100% (45)
variable_if_template 20% (9) 17% (8) 0% (0) 62% (28) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 40% (44) 7% (8) 8% (9) 44% (49) 100% (110)
uncached_disk 54% (60) 1% (2) 14% (16) 29% (32) 100% (110)
uncached_string 20% (22) 0% (0) 25% (28) 54% (60) 100% (110)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (66) 2% (3) 2% (3) 45% (60) 100% (132)
mini-language 3% (2) 4% (3) 33% (22) 59% (39) 100% (66)
not-pure-perl 43% (29) 3% (2) 21% (14) 31% (21) 100% (66)
not-pure-perl,mini-language 43% (29) 3% (2) 21% (14) 31% (21) 100% (66)

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) 0% (0) 0% (0) 66% (10) 100% (15)
complex_variable_expression 33% (5) 0% (0) 6% (1) 60% (9) 100% (15)
constant_expression 46% (7) 6% (1) 26% (4) 20% (3) 100% (15)
constant_function 40% (6) 6% (1) 0% (0) 53% (8) 100% (15)
constant_if_else_literal 53% (8) 6% (1) 20% (3) 20% (3) 100% (15)
constant_if_else_template 46% (7) 0% (0) 33% (5) 20% (3) 100% (15)
constant_if_literal 46% (7) 6% (1) 26% (4) 20% (3) 100% (15)
constant_if_template 46% (7) 0% (0) 26% (4) 26% (4) 100% (15)
deep_data_structure_value 33% (5) 0% (0) 0% (0) 66% (10) 100% (15)
hash_variable_value 33% (5) 0% (0) 0% (0) 66% (10) 100% (15)
literal_text 20% (3) 26% (4) 0% (0) 53% (8) 100% (15)
records_loop_template 33% (5) 0% (0) 20% (3) 46% (7) 100% (15)
records_loop_value 33% (5) 0% (0) 20% (3) 46% (7) 100% (15)
scalar_variable 33% (5) 13% (2) 20% (3) 33% (5) 100% (15)
variable_expression 33% (5) 0% (0) 6% (1) 60% (9) 100% (15)
variable_function 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
variable_if_else_literal 46% (7) 0% (0) 26% (4) 26% (4) 100% (15)
variable_if_else_template 46% (7) 0% (0) 26% (4) 26% (4) 100% (15)
variable_if_literal 46% (7) 0% (0) 26% (4) 26% (4) 100% (15)
variable_if_template 46% (7) 0% (0) 26% (4) 26% (4) 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) 6% (22) 16% (60) 57% (206) 100% (360)
uncached_disk 20% (72) 12% (44) 53% (193) 14% (51) 100% (360)
uncached_string 20% (72) 18% (66) 20% (75) 40% (147) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (216) 10% (45) 15% (67) 24% (104) 100% (432)
embedded-perl 0% (0) 11% (25) 48% (104) 40% (87) 100% (216)
pure-perl 0% (0) 17% (37) 24% (53) 58% (126) 100% (216)
pure-perl,embedded-perl 0% (0) 11% (25) 48% (104) 40% (87) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (72) 23% (84) 30% (108) 26% (96) 100% (360)
10 20% (72) 6% (24) 32% (116) 41% (148) 100% (360)
30 20% (72) 6% (24) 28% (104) 44% (160) 100% (360)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (9) 4% (2) 28% (13) 46% (21) 100% (45)
array_loop_value 20% (9) 6% (3) 28% (13) 44% (20) 100% (45)
array_variable_value 20% (9) 8% (4) 44% (20) 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) 8% (4) 40% (18) 31% (14) 100% (45)
constant_if_else_literal 20% (9) 35% (16) 26% (12) 17% (8) 100% (45)
constant_if_else_template 20% (9) 8% (4) 22% (10) 48% (22) 100% (45)
constant_if_literal 20% (9) 24% (11) 37% (17) 17% (8) 100% (45)
constant_if_template 20% (9) 4% (2) 26% (12) 48% (22) 100% (45)
deep_data_structure_value 20% (9) 8% (4) 13% (6) 57% (26) 100% (45)
hash_loop_template 20% (9) 13% (6) 31% (14) 35% (16) 100% (45)
hash_loop_value 20% (9) 4% (2) 26% (12) 48% (22) 100% (45)
hash_variable_value 20% (9) 13% (6) 40% (18) 26% (12) 100% (45)
literal_text 20% (9) 8% (4) 22% (10) 48% (22) 100% (45)
records_loop_template 20% (9) 15% (7) 28% (13) 35% (16) 100% (45)
records_loop_value 20% (9) 4% (2) 13% (6) 62% (28) 100% (45)
scalar_variable 20% (9) 22% (10) 31% (14) 26% (12) 100% (45)
variable_expression 20% (9) 8% (4) 37% (17) 33% (15) 100% (45)
variable_function 20% (9) 8% (4) 35% (16) 35% (16) 100% (45)
variable_if_else_literal 20% (9) 22% (10) 40% (18) 17% (8) 100% (45)
variable_if_else_template 20% (9) 13% (6) 22% (10) 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 51% (62) 19% (23) 25% (31) 3% (4) 100% (120)
uncached_disk 28% (34) 29% (35) 16% (20) 25% (31) 100% (120)
uncached_string 20% (24) 0% (0) 8% (10) 71% (86) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (74) 12% (18) 21% (31) 14% (21) 100% (144)
embedded-perl 30% (22) 20% (15) 4% (3) 44% (32) 100% (72)
pure-perl 2% (2) 13% (10) 33% (24) 50% (36) 100% (72)
pure-perl,embedded-perl 30% (22) 20% (15) 4% (3) 44% (32) 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) 26% (4) 13% (2) 26% (4) 100% (15)
complex_variable_expression 33% (5) 20% (3) 20% (3) 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) 6% (1) 20% (3) 100% (15)
constant_if_template 33% (5) 6% (1) 13% (2) 46% (7) 100% (15)
deep_data_structure_value 33% (5) 0% (0) 40% (6) 26% (4) 100% (15)
hash_loop_template 33% (5) 0% (0) 6% (1) 60% (9) 100% (15)
hash_loop_value 33% (5) 0% (0) 13% (2) 53% (8) 100% (15)
hash_variable_value 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
literal_text 46% (7) 0% (0) 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) 20% (3) 20% (3) 26% (4) 100% (15)
variable_function 33% (5) 20% (3) 20% (3) 26% (4) 100% (15)
variable_if_else_literal 33% (5) 26% (4) 20% (3) 20% (3) 100% (15)
variable_if_else_template 20% (3) 13% (2) 13% (2) 53% (8) 100% (15)
variable_if_literal 20% (3) 46% (7) 13% (2) 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) 45% (117) 10% (26) 23% (61) 100% (255)
uncached_disk 100% (255) 0% (0) 0% (0) 0% (0) 100% (255)
uncached_string 96% (247) 3% (8) 0% (0) 0% (0) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 81% (248) 3% (12) 5% (16) 9% (30) 100% (306)
embedded-perl 66% (102) 31% (48) 1% (2) 0% (1) 100% (153)
pure-perl 66% (101) 11% (17) 3% (6) 18% (29) 100% (153)
pure-perl,embedded-perl 66% (102) 31% (48) 1% (2) 0% (1) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 72% (185) 18% (48) 5% (14) 3% (8) 100% (255)
10 72% (185) 16% (41) 1% (3) 10% (26) 100% (255)
30 71% (183) 14% (36) 3% (9) 10% (27) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 71% (32) 11% (5) 0% (0) 17% (8) 100% (45)
array_variable_value 73% (33) 15% (7) 2% (1) 8% (4) 100% (45)
complex_variable_expression 73% (33) 13% (6) 0% (0) 13% (6) 100% (45)
constant_expression 73% (33) 15% (7) 4% (2) 6% (3) 100% (45)
constant_function 73% (33) 22% (10) 4% (2) 0% (0) 100% (45)
constant_if_else_literal 73% (33) 17% (8) 8% (4) 0% (0) 100% (45)
constant_if_literal 73% (33) 20% (9) 6% (3) 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) 15% (7) 2% (1) 8% (4) 100% (45)
literal_text 73% (33) 24% (11) 2% (1) 0% (0) 100% (45)
records_loop_value 64% (29) 17% (8) 4% (2) 13% (6) 100% (45)
scalar_variable 73% (33) 15% (7) 2% (1) 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) 15% (7) 2% (1) 8% (4) 100% (45)
variable_if_literal 73% (33) 15% (7) 2% (1) 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) 4% (4) 75% (64) 100% (85)
uncached_disk 95% (81) 4% (4) 0% (0) 0% (0) 100% (85)
uncached_string 81% (69) 14% (12) 4% (4) 0% (0) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 73% (75) 7% (8) 3% (4) 14% (15) 100% (102)
embedded-perl 66% (34) 0% (0) 1% (1) 31% (16) 100% (51)
pure-perl 47% (24) 15% (8) 3% (2) 33% (17) 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 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
array_variable_value 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
complex_variable_expression 60% (9) 13% (2) 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 46% (7) 13% (2) 13% (2) 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) 13% (2) 13% (2) 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 60% (9) 13% (2) 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.11)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 60% (218) 29% (106) 10% (36) 0% (0) 100% (360)
memory_cache 96% (346) 0% (2) 0% (0) 3% (12) 100% (360)
uncached_string 21% (76) 8% (30) 45% (163) 25% (91) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 73% (319) 6% (30) 17% (74) 2% (9) 100% (432)
embedded-perl 50% (108) 17% (38) 15% (34) 16% (36) 100% (216)
pure-perl 48% (105) 14% (32) 26% (57) 10% (22) 100% (216)
pure-perl,embedded-perl 50% (108) 17% (38) 15% (34) 16% (36) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 43% (155) 26% (97) 11% (42) 18% (66) 100% (360)
10 65% (235) 6% (24) 22% (82) 5% (19) 100% (360)
30 69% (250) 4% (17) 20% (75) 5% (18) 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) 28% (13) 11% (5) 100% (45)
array_variable_value 51% (23) 24% (11) 15% (7) 8% (4) 100% (45)
complex_variable_expression 55% (25) 22% (10) 11% (5) 11% (5) 100% (45)
constant_expression 53% (24) 24% (11) 13% (6) 8% (4) 100% (45)
constant_function 55% (25) 13% (6) 20% (9) 11% (5) 100% (45)
constant_if_else_literal 64% (29) 8% (4) 13% (6) 13% (6) 100% (45)
constant_if_else_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
constant_if_literal 60% (27) 8% (4) 13% (6) 17% (8) 100% (45)
constant_if_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
deep_data_structure_value 51% (23) 20% (9) 6% (3) 22% (10) 100% (45)
hash_loop_template 55% (25) 4% (2) 22% (10) 17% (8) 100% (45)
hash_loop_value 55% (25) 4% (2) 31% (14) 8% (4) 100% (45)
hash_variable_value 57% (26) 15% (7) 22% (10) 4% (2) 100% (45)
literal_text 75% (34) 24% (11) 0% (0) 0% (0) 100% (45)
records_loop_template 55% (25) 4% (2) 26% (12) 13% (6) 100% (45)
records_loop_value 55% (25) 6% (3) 33% (15) 4% (2) 100% (45)
scalar_variable 60% (27) 24% (11) 6% (3) 8% (4) 100% (45)
variable_expression 60% (27) 8% (4) 22% (10) 8% (4) 100% (45)
variable_function 57% (26) 15% (7) 15% (7) 11% (5) 100% (45)
variable_if_else_literal 64% (29) 13% (6) 8% (4) 13% (6) 100% (45)
variable_if_else_template 64% (29) 8% (4) 22% (10) 4% (2) 100% (45)
variable_if_literal 64% (29) 13% (6) 17% (8) 4% (2) 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) 3% (4) 3% (4) 0% (0) 100% (120)
uncached_string 61% (74) 25% (30) 13% (16) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (108) 15% (23) 9% (13) 0% (0) 100% (144)
embedded-perl 100% (72) 0% (0) 0% (0) 0% (0) 100% (72)
pure-perl 50% (36) 26% (19) 23% (17) 0% (0) 100% (72)
pure-perl,embedded-perl 100% (72) 0% (0) 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) 0% (0) 40% (6) 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 73% (11) 13% (2) 13% (2) 0% (0) 100% (15)
hash_loop_template 73% (11) 20% (3) 6% (1) 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) 13% (2) 13% (2) 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) 6% (1) 6% (1) 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 21% (55) 6% (16) 22% (57) 49% (127) 100% (255)
uncached_string 20% (53) 1% (5) 10% (27) 66% (170) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (198) 3% (11) 18% (58) 12% (39) 100% (306)
embedded-perl 34% (53) 1% (2) 3% (6) 60% (92) 100% (153)
pure-perl 27% (42) 7% (11) 16% (26) 48% (74) 100% (153)
pure-perl,embedded-perl 34% (53) 1% (2) 3% (6) 60% (92) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 46% (119) 2% (7) 14% (36) 36% (93) 100% (255)
10 43% (112) 3% (8) 12% (33) 40% (102) 100% (255)
30 45% (115) 4% (11) 10% (27) 40% (102) 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) 11% (5) 42% (19) 100% (45)
constant_if_literal 46% (21) 2% (1) 8% (4) 42% (19) 100% (45)
deep_data_structure_value 53% (24) 8% (4) 28% (13) 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 51% (23) 24% (11) 15% (7) 8% (4) 100% (45)
records_loop_value 37% (17) 0% (0) 22% (10) 40% (18) 100% (45)
scalar_variable 46% (21) 6% (3) 20% (9) 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) 4% (2) 17% (8) 31% (14) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 57% (49) 20% (17) 12% (11) 9% (8) 100% (85)
uncached_disk 23% (20) 9% (8) 10% (9) 56% (48) 100% (85)
uncached_string 22% (19) 4% (4) 17% (15) 55% (47) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 53% (55) 12% (13) 15% (16) 17% (18) 100% (102)
embedded-perl 29% (15) 7% (4) 11% (6) 50% (26) 100% (51)
pure-perl 5% (3) 15% (8) 13% (7) 64% (33) 100% (51)
pure-perl,embedded-perl 29% (15) 7% (4) 11% (6) 50% (26) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
array_variable_value 33% (5) 6% (1) 13% (2) 46% (7) 100% (15)
complex_variable_expression 33% (5) 26% (4) 33% (5) 6% (1) 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) 0% (0) 53% (8) 100% (15)
constant_if_literal 46% (7) 0% (0) 0% (0) 53% (8) 100% (15)
deep_data_structure_value 60% (9) 26% (4) 13% (2) 0% (0) 100% (15)
hash_loop_value 20% (3) 13% (2) 6% (1) 60% (9) 100% (15)
hash_variable_value 33% (5) 6% (1) 26% (4) 33% (5) 100% (15)
literal_text 26% (4) 33% (5) 26% (4) 13% (2) 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) 13% (2) 46% (7) 100% (15)
variable_if_else_literal 33% (5) 13% (2) 6% (1) 46% (7) 100% (15)
variable_if_literal 33% (5) 13% (2) 6% (1) 46% (7) 100% (15)

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 58% (210) 33% (119) 1% (5) 7% (26) 100% (360)
memory_cache 38% (138) 7% (26) 10% (36) 44% (160) 100% (360)
uncached_disk 78% (284) 16% (59) 3% (14) 0% (3) 100% (360)
uncached_string 61% (223) 25% (92) 10% (38) 1% (7) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 68% (395) 18% (107) 7% (46) 4% (28) 100% (576)
embedded-perl 56% (163) 18% (53) 1% (4) 23% (68) 100% (288)
pure-perl 46% (134) 28% (83) 13% (39) 11% (32) 100% (288)
pure-perl,embedded-perl 56% (163) 18% (53) 1% (4) 23% (68) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 80% (385) 11% (57) 0% (4) 7% (34) 100% (480)
10 54% (260) 23% (113) 7% (34) 15% (73) 100% (480)
30 43% (210) 26% (126) 11% (55) 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 55% (33) 15% (9) 6% (4) 23% (14) 100% (60)
array_variable_value 61% (37) 25% (15) 3% (2) 10% (6) 100% (60)
complex_variable_expression 36% (22) 28% (17) 13% (8) 21% (13) 100% (60)
constant_expression 63% (38) 23% (14) 6% (4) 6% (4) 100% (60)
constant_function 65% (39) 23% (14) 5% (3) 6% (4) 100% (60)
constant_if_else_literal 63% (38) 23% (14) 3% (2) 10% (6) 100% (60)
constant_if_else_template 68% (41) 15% (9) 3% (2) 13% (8) 100% (60)
constant_if_literal 66% (40) 26% (16) 0% (0) 6% (4) 100% (60)
constant_if_template 68% (41) 18% (11) 0% (0) 13% (8) 100% (60)
deep_data_structure_value 50% (30) 23% (14) 16% (10) 10% (6) 100% (60)
hash_loop_template 56% (34) 13% (8) 6% (4) 23% (14) 100% (60)
hash_loop_value 50% (30) 23% (14) 3% (2) 23% (14) 100% (60)
hash_variable_value 66% (40) 23% (14) 3% (2) 6% (4) 100% (60)
literal_text 43% (26) 18% (11) 13% (8) 25% (15) 100% (60)
records_loop_template 48% (29) 21% (13) 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 46% (28) 31% (19) 11% (7) 10% (6) 100% (60)
variable_function 55% (33) 20% (12) 11% (7) 13% (8) 100% (60)
variable_if_else_literal 68% (41) 18% (11) 3% (2) 10% (6) 100% (60)
variable_if_else_template 68% (41) 18% (11) 3% (2) 10% (6) 100% (60)
variable_if_literal 66% (40) 20% (12) 3% (2) 10% (6) 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) 25% (30) 10% (12) 43% (52) 100% (120)
memory_cache 21% (26) 0% (0) 10% (12) 68% (82) 100% (120)
uncached_disk 23% (28) 16% (20) 43% (52) 16% (20) 100% (120)
uncached_string 26% (32) 17% (21) 37% (45) 18% (22) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (98) 6% (12) 23% (46) 18% (36) 100% (192)
embedded-perl 6% (6) 28% (27) 19% (19) 45% (44) 100% (96)
pure-perl 2% (2) 5% (5) 38% (37) 54% (52) 100% (96)
pure-perl,embedded-perl 6% (6) 28% (27) 19% (19) 45% (44) 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) 15% (3) 20% (4) 45% (9) 100% (20)
array_variable_value 20% (4) 10% (2) 40% (8) 30% (6) 100% (20)
complex_variable_expression 20% (4) 10% (2) 5% (1) 65% (13) 100% (20)
constant_expression 20% (4) 10% (2) 50% (10) 20% (4) 100% (20)
constant_function 20% (4) 20% (4) 50% (10) 10% (2) 100% (20)
constant_if_else_literal 30% (6) 10% (2) 20% (4) 40% (8) 100% (20)
constant_if_else_template 30% (6) 20% (4) 25% (5) 25% (5) 100% (20)
constant_if_literal 20% (4) 10% (2) 25% (5) 45% (9) 100% (20)
constant_if_template 20% (4) 25% (5) 30% (6) 25% (5) 100% (20)
deep_data_structure_value 20% (4) 10% (2) 0% (0) 70% (14) 100% (20)
hash_loop_template 20% (4) 40% (8) 10% (2) 30% (6) 100% (20)
hash_loop_value 20% (4) 40% (8) 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) 10% (2) 50% (10) 100% (20)
records_loop_template 30% (6) 15% (3) 10% (2) 45% (9) 100% (20)
records_loop_value 40% (8) 5% (1) 15% (3) 40% (8) 100% (20)
scalar_variable 20% (4) 15% (3) 55% (11) 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) 15% (3) 55% (11) 100% (20)
variable_if_else_template 30% (6) 15% (3) 45% (9) 10% (2) 100% (20)
variable_if_literal 20% (4) 10% (2) 15% (3) 55% (11) 100% (20)
variable_if_template 20% (4) 10% (2) 40% (8) 30% (6) 100% (20)

TeTmpl, Text::Tmpl (0.33)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 60% (108) 3% (7) 17% (31) 18% (34) 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) 9% (13) 40% (58) 100% (144)
mini-language 0% (0) 16% (12) 38% (28) 44% (32) 100% (72)
not-pure-perl 50% (36) 0% (0) 41% (30) 8% (6) 100% (72)
not-pure-perl,mini-language 50% (36) 0% (0) 41% (30) 8% (6) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 40% (48) 10% (13) 31% (38) 17% (21) 100% (120)
10 40% (48) 0% (0) 26% (32) 33% (40) 100% (120)
30 40% (48) 0% (0) 25% (31) 34% (41) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 40% (12) 3% (1) 33% (10) 23% (7) 100% (30)
array_loop_value 40% (12) 3% (1) 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 40% (12) 6% (2) 43% (13) 10% (3) 100% (30)
records_loop_template 40% (12) 0% (0) 33% (10) 26% (8) 100% (30)
records_loop_value 40% (12) 0% (0) 30% (9) 30% (9) 100% (30)
scalar_variable 40% (12) 10% (3) 30% (9) 20% (6) 100% (30)
variable_if_else_literal 40% (12) 6% (2) 33% (10) 20% (6) 100% (30)
variable_if_else_template 40% (12) 0% (0) 36% (11) 23% (7) 100% (30)
variable_if_literal 40% (12) 6% (2) 33% (10) 20% (6) 100% (30)
variable_if_template 40% (12) 6% (2) 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) 13% (8) 0% (0) 60% (36) 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) 16% (4) 0% (0) 75% (18) 100% (24)
not-pure-perl,mini-language 8% (2) 16% (4) 0% (0) 75% (18) 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) 0% (0) 80% (8) 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) 20% (2) 0% (0) 60% (6) 100% (10)
variable_if_else_literal 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)
variable_if_else_template 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)
variable_if_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_template 20% (2) 20% (2) 0% (0) 60% (6) 100% (10)

TeXs, Text::Xslate (0.001_05)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 39% (117) 9% (27) 3% (11) 48% (145) 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 81% (195) 4% (10) 2% (7) 11% (28) 100% (240)
mini-language 61% (74) 12% (15) 3% (4) 22% (27) 100% (120)
not-pure-perl 61% (74) 0% (1) 0% (0) 37% (45) 100% (120)
not-pure-perl,mini-language 61% (74) 0% (1) 0% (0) 37% (45) 100% (120)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 60% (120) 0% (0) 0% (1) 39% (79) 100% (200)
10 64% (129) 9% (18) 4% (9) 22% (44) 100% (200)
30 84% (168) 4% (9) 0% (1) 11% (22) 100% (200)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 60% (18) 0% (0) 0% (0) 40% (12) 100% (30)
array_loop_value 60% (18) 0% (0) 0% (0) 40% (12) 100% (30)
array_variable_value 73% (22) 0% (0) 6% (2) 20% (6) 100% (30)
complex_variable_expression 70% (21) 10% (3) 0% (0) 20% (6) 100% (30)
constant_expression 60% (18) 13% (4) 0% (0) 26% (8) 100% (30)
constant_if_else_literal 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
constant_if_else_template 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
constant_if_literal 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
constant_if_template 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
deep_data_structure_value 86% (26) 0% (0) 0% (0) 13% (4) 100% (30)
hash_variable_value 66% (20) 6% (2) 6% (2) 20% (6) 100% (30)
literal_text 86% (26) 0% (0) 3% (1) 10% (3) 100% (30)
records_loop_template 60% (18) 0% (0) 0% (0) 40% (12) 100% (30)
records_loop_value 60% (18) 0% (0) 0% (0) 40% (12) 100% (30)
scalar_variable 60% (18) 3% (1) 10% (3) 26% (8) 100% (30)
variable_expression 60% (18) 10% (3) 3% (1) 26% (8) 100% (30)
variable_if_else_literal 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
variable_if_else_template 73% (22) 3% (1) 3% (1) 20% (6) 100% (30)
variable_if_literal 73% (22) 6% (2) 0% (0) 20% (6) 100% (30)
variable_if_template 73% (22) 3% (1) 3% (1) 20% (6) 100% (30)

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)
uncached_string 100% (100) 0% (0) 0% (0) 0% (0) 100% (100)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 95% (76) 5% (4) 0% (0) 0% (0) 100% (80)
mini-language 90% (36) 10% (4) 0% (0) 0% (0) 100% (40)
not-pure-perl 100% (40) 0% (0) 0% (0) 0% (0) 100% (40)
not-pure-perl,mini-language 100% (40) 0% (0) 0% (0) 0% (0) 100% (40)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 80% (8) 20% (2) 0% (0) 0% (0) 100% (10)
array_loop_value 80% (8) 20% (2) 0% (0) 0% (0) 100% (10)
array_variable_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
complex_variable_expression 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_expression 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_if_else_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_if_else_template 100% (10) 0% (0) 0% (0) 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_variable_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
literal_text 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
records_loop_template 80% (8) 20% (2) 0% (0) 0% (0) 100% (10)
records_loop_value 80% (8) 20% (2) 0% (0) 0% (0) 100% (10)
scalar_variable 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_expression 100% (10) 0% (0) 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)

Tenj, Tenjin (0.051)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (72) 4% (17) 10% (36) 65% (235) 100% (360)
instance_reuse 82% (296) 2% (10) 14% (52) 0% (2) 100% (360)
uncached_disk 20% (72) 1% (4) 19% (70) 59% (214) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 59% (256) 2% (11) 19% (86) 18% (79) 100% (432)
embedded-perl 33% (72) 0% (0) 3% (8) 62% (136) 100% (216)
pure-perl 18% (40) 9% (20) 25% (56) 46% (100) 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) 3% (11) 13% (50) 39% (143) 100% (360)
10 41% (148) 2% (9) 13% (48) 43% (155) 100% (360)
30 37% (136) 3% (11) 16% (60) 42% (153) 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) 13% (6) 48% (22) 100% (45)
constant_expression 42% (19) 6% (3) 4% (2) 46% (21) 100% (45)
constant_function 46% (21) 0% (0) 4% (2) 48% (22) 100% (45)
constant_if_else_literal 46% (21) 6% (3) 17% (8) 28% (13) 100% (45)
constant_if_else_template 46% (21) 2% (1) 13% (6) 37% (17) 100% (45)
constant_if_literal 46% (21) 6% (3) 17% (8) 28% (13) 100% (45)
constant_if_template 46% (21) 2% (1) 8% (4) 42% (19) 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 42% (19) 0% (0) 8% (4) 48% (22) 100% (45)
literal_text 46% (21) 6% (3) 11% (5) 35% (16) 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) 13% (6) 40% (18) 100% (45)
variable_expression 37% (17) 2% (1) 11% (5) 48% (22) 100% (45)
variable_function 42% (19) 2% (1) 6% (3) 48% (22) 100% (45)
variable_if_else_literal 46% (21) 6% (3) 13% (6) 33% (15) 100% (45)
variable_if_else_template 42% (19) 4% (2) 20% (9) 33% (15) 100% (45)
variable_if_literal 46% (21) 6% (3) 13% (6) 33% (15) 100% (45)
variable_if_template 42% (19) 4% (2) 15% (7) 37% (17) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (26) 18% (22) 7% (9) 52% (63) 100% (120)
instance_reuse 35% (43) 21% (26) 13% (16) 29% (35) 100% (120)
uncached_disk 26% (32) 27% (33) 12% (15) 33% (40) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (76) 12% (18) 8% (12) 26% (38) 100% (144)
embedded-perl 15% (11) 36% (26) 9% (7) 38% (28) 100% (72)
pure-perl 4% (3) 15% (11) 19% (14) 61% (44) 100% (72)
pure-perl,embedded-perl 15% (11) 36% (26) 9% (7) 38% (28) 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) 0% (0) 13% (2) 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 33% (5) 33% (5) 13% (2) 20% (3) 100% (15)
constant_if_literal 53% (8) 33% (5) 13% (2) 0% (0) 100% (15)
constant_if_template 20% (3) 20% (3) 13% (2) 46% (7) 100% (15)
deep_data_structure_value 20% (3) 13% (2) 0% (0) 66% (10) 100% (15)
hash_loop_template 20% (3) 26% (4) 0% (0) 53% (8) 100% (15)
hash_loop_value 20% (3) 13% (2) 26% (4) 40% (6) 100% (15)
hash_variable_value 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
literal_text 46% (7) 26% (4) 6% (1) 20% (3) 100% (15)
records_loop_template 33% (5) 20% (3) 6% (1) 40% (6) 100% (15)
records_loop_value 20% (3) 26% (4) 20% (3) 33% (5) 100% (15)
scalar_variable 20% (3) 0% (0) 13% (2) 66% (10) 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 33% (5) 20% (3) 20% (3) 26% (4) 100% (15)
variable_if_literal 33% (5) 53% (8) 6% (1) 6% (1) 100% (15)
variable_if_template 33% (5) 33% (5) 26% (4) 6% (1) 100% (15)
© 2009-2013 Sam Graham, unless otherwise noted. All rights reserved.