Perl Template Roundup October 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
HM 76% (551) 20% (144) 3% (25) 0% (0) 100% (720)
HMac 100% (192) 0% (0) 0% (0) 0% (0) 100% (192)
HT 52% (100) 5% (10) 20% (40) 21% (42) 100% (192)
HTC 65% (156) 20% (49) 2% (5) 12% (30) 100% (240)
HTE 64% (198) 23% (73) 6% (19) 5% (16) 100% (306)
HTJ 50% (24) 0% (0) 0% (0) 50% (24) 100% (48)
HTP 50% (102) 0% (0) 0% (0) 50% (102) 100% (204)
MoTe 50% (217) 8% (38) 26% (116) 14% (61) 100% (432)
NT 50% (45) 0% (0) 24% (22) 25% (23) 100% (90)
PT 60% (123) 8% (18) 6% (14) 24% (49) 100% (204)
Sol 67% (154) 12% (28) 10% (25) 9% (21) 100% (228)
TAHT 50% (156) 7% (23) 22% (68) 19% (59) 100% (306)
TATT 38% (161) 13% (56) 29% (124) 17% (73) 100% (414)
TATT_P 37% (103) 38% (105) 17% (48) 7% (20) 100% (276)
TATT_PS 16% (46) 44% (122) 17% (48) 21% (60) 100% (276)
TATT_S 15% (44) 22% (61) 27% (76) 34% (95) 100% (276)
TS 50% (216) 25% (109) 24% (106) 0% (1) 100% (432)
TS_CF 25% (72) 9% (26) 51% (149) 14% (41) 100% (288)
TS_CFM 0% (0) 54% (79) 36% (52) 9% (13) 100% (144)
TS_CHI 51% (223) 8% (38) 14% (63) 25% (108) 100% (432)
TS_CRF 0% (0) 2% (4) 19% (28) 77% (112) 100% (144)
TS_FMM 1% (2) 0% (0) 0% (0) 98% (142) 100% (144)
TT 82% (342) 17% (71) 0% (1) 0% (0) 100% (414)
TT_X 10% (45) 53% (222) 4% (20) 30% (127) 100% (414)
TT_XCET 17% (72) 62% (260) 1% (8) 17% (74) 100% (414)
TTiny 56% (44) 16% (13) 0% (0) 26% (21) 100% (78)
TeCS 50% (199) 6% (25) 10% (40) 33% (132) 100% (396)
TeClev 75% (360) 2% (13) 5% (25) 17% (82) 100% (480)
TeClevy 75% (360) 1% (9) 5% (24) 18% (87) 100% (480)
TeMMHM 50% (216) 2% (10) 23% (100) 24% (106) 100% (432)
TeMMTeTe 58% (179) 30% (93) 10% (31) 0% (3) 100% (306)
TeMT 60% (348) 2% (17) 25% (144) 11% (67) 100% (576)
TeMTE 71% (205) 4% (13) 19% (56) 4% (14) 100% (288)
TeTe 64% (198) 1% (6) 14% (44) 18% (58) 100% (306)
TeTeSimp 57% (332) 26% (155) 10% (63) 4% (26) 100% (576)
TeTemplet 50% (72) 0% (0) 22% (32) 27% (40) 100% (144)
TeTmpl 50% (72) 0% (0) 5% (8) 44% (64) 100% (144)
TeXs 70% (406) 4% (28) 2% (12) 22% (130) 100% (576)
TeXsPP 83% (480) 4% (24) 12% (70) 0% (2) 100% (576)
TeXsTT 77% (408) 7% (38) 2% (14) 12% (68) 100% (528)
Tenj 58% (253) 5% (25) 10% (45) 25% (109) 100% (432)

Performance Drop-off Distribution

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
HM 50% (120) 1% (4) 5% (12) 43% (104) 100% (240)
HMac 50% (32) 1% (1) 0% (0) 48% (31) 100% (64)
HT 64% (41) 18% (12) 14% (9) 3% (2) 100% (64)
HTC 70% (56) 11% (9) 12% (10) 6% (5) 100% (80)
HTE 78% (80) 8% (9) 12% (13) 0% (0) 100% (102)
HTJ 50% (8) 0% (0) 6% (1) 43% (7) 100% (16)
HTP 50% (34) 0% (0) 0% (0) 50% (34) 100% (68)
MoTe 52% (76) 22% (33) 22% (33) 1% (2) 100% (144)
NT 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
PT 69% (47) 5% (4) 1% (1) 23% (16) 100% (68)
Sol 98% (75) 1% (1) 0% (0) 0% (0) 100% (76)
TAHT 79% (81) 18% (19) 0% (1) 0% (1) 100% (102)
TATT 68% (94) 8% (12) 15% (21) 7% (11) 100% (138)
TATT_P 52% (48) 10% (10) 20% (19) 16% (15) 100% (92)
TATT_PS 76% (70) 14% (13) 8% (8) 1% (1) 100% (92)
TATT_S 89% (82) 2% (2) 5% (5) 3% (3) 100% (92)
TS 84% (121) 12% (18) 0% (1) 2% (4) 100% (144)
TS_CF 12% (12) 9% (9) 36% (35) 41% (40) 100% (96)
TS_CFM 20% (10) 16% (8) 35% (17) 27% (13) 100% (48)
TS_CHI 46% (67) 16% (24) 6% (9) 30% (44) 100% (144)
TS_CRF 27% (13) 47% (23) 16% (8) 8% (4) 100% (48)
TS_FMM 87% (42) 0% (0) 0% (0) 12% (6) 100% (48)
TT 56% (78) 33% (46) 7% (10) 2% (4) 100% (138)
TT_X 23% (33) 50% (69) 15% (21) 10% (15) 100% (138)
TT_XCET 3% (5) 34% (47) 21% (29) 41% (57) 100% (138)
TTiny 100% (26) 0% (0) 0% (0) 0% (0) 100% (26)
TeCS 50% (66) 8% (11) 3% (5) 37% (50) 100% (132)
TeClev 57% (92) 18% (29) 13% (22) 10% (17) 100% (160)
TeClevy 57% (92) 17% (28) 13% (21) 11% (19) 100% (160)
TeMMHM 50% (73) 18% (26) 20% (30) 10% (15) 100% (144)
TeMMTeTe 79% (81) 4% (5) 4% (5) 10% (11) 100% (102)
TeMT 63% (122) 21% (41) 14% (28) 0% (1) 100% (192)
TeMTE 69% (67) 16% (16) 13% (13) 0% (0) 100% (96)
TeTe 52% (54) 13% (14) 23% (24) 9% (10) 100% (102)
TeTeSimp 50% (97) 8% (16) 21% (42) 19% (37) 100% (192)
TeTemplet 89% (43) 2% (1) 0% (0) 8% (4) 100% (48)
TeTmpl 50% (24) 0% (0) 0% (0) 50% (24) 100% (48)
TeXs 67% (129) 16% (32) 8% (17) 7% (14) 100% (192)
TeXsPP 75% (144) 17% (33) 4% (9) 3% (6) 100% (192)
TeXsTT 51% (90) 4% (8) 18% (32) 26% (46) 100% (176)
Tenj 53% (77) 13% (20) 11% (17) 20% (30) 100% (144)

HM, HTML::Mason (1.45)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 92% (334) 2% (8) 4% (16) 0% (2) 100% (360)
instance_reuse 61% (222) 26% (95) 10% (38) 1% (5) 100% (360)
memory_cache 91% (330) 2% (10) 5% (20) 0% (0) 100% (360)
uncached_disk 71% (259) 28% (101) 0% (0) 0% (0) 100% (360)
uncached_string 78% (281) 20% (75) 1% (4) 0% (0) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 76% (551) 20% (144) 3% (25) 0% (0) 100% (720)
embedded-perl 87% (316) 9% (34) 2% (10) 0% (0) 100% (360)
pure-perl 67% (243) 21% (77) 9% (33) 1% (7) 100% (360)
pure-perl,embedded-perl 87% (316) 9% (34) 2% (10) 0% (0) 100% (360)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 95% (574) 4% (26) 0% (0) 0% (0) 100% (600)
15 75% (453) 20% (122) 3% (23) 0% (2) 100% (600)
30 66% (399) 23% (141) 9% (55) 0% (5) 100% (600)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 78% (59) 10% (8) 9% (7) 1% (1) 100% (75)
array_loop_value 74% (56) 16% (12) 9% (7) 0% (0) 100% (75)
array_variable_value 84% (63) 14% (11) 1% (1) 0% (0) 100% (75)
complex_variable_expression 73% (55) 21% (16) 5% (4) 0% (0) 100% (75)
constant_expression 81% (61) 18% (14) 0% (0) 0% (0) 100% (75)
constant_function 84% (63) 16% (12) 0% (0) 0% (0) 100% (75)
constant_if_else_literal 80% (60) 17% (13) 2% (2) 0% (0) 100% (75)
constant_if_else_template 85% (64) 10% (8) 4% (3) 0% (0) 100% (75)
constant_if_literal 82% (62) 17% (13) 0% (0) 0% (0) 100% (75)
constant_if_template 85% (64) 13% (10) 1% (1) 0% (0) 100% (75)
deep_data_structure_value 80% (60) 16% (12) 4% (3) 0% (0) 100% (75)
hash_loop_template 74% (56) 12% (9) 10% (8) 2% (2) 100% (75)
hash_loop_value 65% (49) 21% (16) 13% (10) 0% (0) 100% (75)
hash_variable_value 82% (62) 16% (12) 1% (1) 0% (0) 100% (75)
literal_text 86% (65) 10% (8) 2% (2) 0% (0) 100% (75)
records_loop_template 72% (54) 16% (12) 8% (6) 4% (3) 100% (75)
records_loop_value 66% (50) 21% (16) 10% (8) 1% (1) 100% (75)
scalar_variable 85% (64) 13% (10) 1% (1) 0% (0) 100% (75)
variable_expression 77% (58) 21% (16) 1% (1) 0% (0) 100% (75)
variable_function 77% (58) 20% (15) 2% (2) 0% (0) 100% (75)
variable_if_else_literal 77% (58) 20% (15) 2% (2) 0% (0) 100% (75)
variable_if_else_template 82% (62) 12% (9) 5% (4) 0% (0) 100% (75)
variable_if_literal 80% (60) 18% (14) 1% (1) 0% (0) 100% (75)
variable_if_template 84% (63) 10% (8) 5% (4) 0% (0) 100% (75)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (24) 1% (2) 3% (4) 75% (90) 100% (120)
instance_reuse 20% (24) 0% (0) 1% (2) 78% (94) 100% (120)
memory_cache 20% (24) 6% (8) 40% (48) 33% (40) 100% (120)
uncached_disk 20% (24) 0% (0) 2% (3) 77% (93) 100% (120)
uncached_string 20% (24) 0% (0) 3% (4) 76% (92) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (120) 1% (4) 5% (12) 43% (104) 100% (240)
embedded-perl 0% (0) 0% (1) 16% (20) 82% (99) 100% (120)
pure-perl 0% (0) 3% (4) 7% (9) 89% (107) 100% (120)
pure-perl,embedded-perl 0% (0) 0% (1) 16% (20) 82% (99) 100% (120)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (5) 0% (0) 0% (0) 80% (20) 100% (25)
array_loop_value 20% (5) 0% (0) 0% (0) 80% (20) 100% (25)
array_variable_value 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
complex_variable_expression 20% (5) 0% (0) 0% (0) 80% (20) 100% (25)
constant_expression 20% (5) 8% (2) 8% (2) 64% (16) 100% (25)
constant_function 20% (5) 8% (2) 16% (4) 56% (14) 100% (25)
constant_if_else_literal 20% (5) 0% (0) 20% (5) 60% (15) 100% (25)
constant_if_else_template 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
constant_if_literal 20% (5) 8% (2) 20% (5) 52% (13) 100% (25)
constant_if_template 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
deep_data_structure_value 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
hash_loop_template 20% (5) 0% (0) 0% (0) 80% (20) 100% (25)
hash_loop_value 20% (5) 0% (0) 0% (0) 80% (20) 100% (25)
hash_variable_value 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
literal_text 20% (5) 8% (2) 28% (7) 44% (11) 100% (25)
records_loop_template 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
records_loop_value 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
scalar_variable 20% (5) 8% (2) 16% (4) 56% (14) 100% (25)
variable_expression 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
variable_function 20% (5) 0% (0) 8% (2) 72% (18) 100% (25)
variable_if_else_literal 20% (5) 0% (0) 16% (4) 64% (16) 100% (25)
variable_if_else_template 20% (5) 0% (0) 16% (4) 64% (16) 100% (25)
variable_if_literal 20% (5) 0% (0) 16% (4) 64% (16) 100% (25)
variable_if_template 20% (5) 0% (0) 16% (4) 64% (16) 100% (25)

HMac, HTML::Macro (1.29)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 100% (240) 0% (0) 0% (0) 0% (0) 100% (240)
uncached_disk 97% (235) 2% (5) 0% (0) 0% (0) 100% (240)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 100% (192) 0% (0) 0% (0) 0% (0) 100% (192)
mini-language 96% (93) 3% (3) 0% (0) 0% (0) 100% (96)
pure-perl 100% (96) 0% (0) 0% (0) 0% (0) 100% (96)
pure-perl,mini-language 97% (94) 2% (2) 0% (0) 0% (0) 100% (96)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 100% (160) 0% (0) 0% (0) 0% (0) 100% (160)
15 100% (160) 0% (0) 0% (0) 0% (0) 100% (160)
30 96% (155) 3% (5) 0% (0) 0% (0) 100% (160)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
array_loop_value 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
constant_if_else_literal 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
constant_if_else_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
constant_if_literal 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
constant_if_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
hash_loop_template 93% (28) 6% (2) 0% (0) 0% (0) 100% (30)
hash_loop_value 93% (28) 6% (2) 0% (0) 0% (0) 100% (30)
literal_text 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
records_loop_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
records_loop_value 96% (29) 3% (1) 0% (0) 0% (0) 100% (30)
scalar_variable 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
variable_if_else_literal 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
variable_if_else_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
variable_if_literal 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)
variable_if_template 100% (30) 0% (0) 0% (0) 0% (0) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 21% (17) 3% (3) 0% (0) 75% (60) 100% (80)
uncached_disk 20% (16) 0% (0) 0% (0) 80% (64) 100% (80)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (32) 1% (1) 0% (0) 48% (31) 100% (64)
mini-language 0% (0) 3% (1) 0% (0) 96% (31) 100% (32)
pure-perl 0% (0) 3% (1) 0% (0) 96% (31) 100% (32)
pure-perl,mini-language 3% (1) 0% (0) 0% (0) 96% (31) 100% (32)

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)
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)
hash_loop_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
hash_loop_value 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
literal_text 30% (3) 30% (3) 0% (0) 40% (4) 100% (10)
records_loop_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
records_loop_value 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
scalar_variable 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_else_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_else_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)

HT, HTML::Template (2.9)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (24) 17% (21) 29% (35) 33% (40) 100% (120)
memory_cache 36% (44) 15% (18) 40% (48) 8% (10) 100% (120)
uncached_disk 20% (24) 6% (8) 12% (15) 60% (73) 100% (120)
uncached_string 20% (24) 0% (1) 35% (43) 43% (52) 100% (120)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (100) 5% (10) 20% (40) 21% (42) 100% (192)
mini-language 6% (6) 12% (12) 40% (39) 40% (39) 100% (96)
pure-perl 4% (4) 10% (10) 39% (38) 45% (44) 100% (96)
pure-perl,mini-language 6% (6) 16% (16) 25% (24) 52% (50) 100% (96)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 22% (36) 11% (19) 47% (76) 18% (29) 100% (160)
15 25% (40) 6% (11) 23% (37) 45% (72) 100% (160)
30 25% (40) 11% (18) 17% (28) 46% (74) 100% (160)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (12) 13% (8) 53% (32) 13% (8) 100% (60)
records_loop_template 36% (22) 21% (13) 28% (17) 13% (8) 100% (60)
records_loop_value 36% (22) 21% (13) 28% (17) 13% (8) 100% (60)
scalar_variable 20% (12) 1% (1) 21% (13) 56% (34) 100% (60)
variable_if_else_literal 20% (12) 8% (5) 25% (15) 46% (28) 100% (60)
variable_if_else_template 20% (12) 3% (2) 28% (17) 48% (29) 100% (60)
variable_if_literal 20% (12) 5% (3) 28% (17) 46% (28) 100% (60)
variable_if_template 20% (12) 5% (3) 21% (13) 53% (32) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 40% (16) 5% (2) 27% (11) 27% (11) 100% (40)
memory_cache 40% (16) 40% (16) 20% (8) 0% (0) 100% (40)
uncached_disk 47% (19) 22% (9) 30% (12) 0% (0) 100% (40)
uncached_string 27% (11) 32% (13) 27% (11) 12% (5) 100% (40)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (41) 18% (12) 14% (9) 3% (2) 100% (64)
mini-language 21% (7) 34% (11) 37% (12) 6% (2) 100% (32)
pure-perl 21% (7) 34% (11) 37% (12) 6% (2) 100% (32)
pure-perl,mini-language 21% (7) 18% (6) 28% (9) 31% (10) 100% (32)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 25% (5) 35% (7) 20% (4) 20% (4) 100% (20)
records_loop_template 95% (19) 5% (1) 0% (0) 0% (0) 100% (20)
records_loop_value 80% (16) 15% (3) 5% (1) 0% (0) 100% (20)
scalar_variable 20% (4) 0% (0) 55% (11) 25% (5) 100% (20)
variable_if_else_literal 20% (4) 40% (8) 35% (7) 5% (1) 100% (20)
variable_if_else_template 25% (5) 40% (8) 25% (5) 10% (2) 100% (20)
variable_if_literal 20% (4) 25% (5) 45% (9) 10% (2) 100% (20)
variable_if_template 25% (5) 40% (8) 25% (5) 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 88% (132) 1% (2) 8% (13) 2% (3) 100% (150)
memory_cache 20% (30) 0% (0) 0% (0) 80% (120) 100% (150)
uncached_disk 36% (54) 58% (87) 6% (9) 0% (0) 100% (150)
uncached_string 61% (92) 36% (54) 2% (4) 0% (0) 100% (150)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 65% (156) 20% (49) 2% (5) 12% (30) 100% (240)
mini-language 21% (26) 40% (48) 13% (16) 25% (30) 100% (120)
pure-perl 63% (76) 8% (10) 3% (4) 25% (30) 100% (120)
pure-perl,mini-language 41% (50) 30% (36) 0% (1) 27% (33) 100% (120)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 52% (104) 26% (52) 2% (4) 20% (40) 100% (200)
15 52% (104) 22% (45) 5% (10) 20% (41) 100% (200)
30 50% (100) 23% (46) 6% (12) 21% (42) 100% (200)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
deep_data_structure_value 50% (30) 20% (12) 10% (6) 20% (12) 100% (60)
hash_variable_value 55% (33) 18% (11) 6% (4) 20% (12) 100% (60)
literal_text 46% (28) 31% (19) 1% (1) 20% (12) 100% (60)
records_loop_template 36% (22) 28% (17) 13% (8) 21% (13) 100% (60)
records_loop_value 38% (23) 26% (16) 11% (7) 23% (14) 100% (60)
scalar_variable 56% (34) 23% (14) 0% (0) 20% (12) 100% (60)
variable_if_else_literal 55% (33) 25% (15) 0% (0) 20% (12) 100% (60)
variable_if_else_template 60% (36) 20% (12) 0% (0) 20% (12) 100% (60)
variable_if_literal 55% (33) 25% (15) 0% (0) 20% (12) 100% (60)
variable_if_template 60% (36) 20% (12) 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) 36% (18) 34% (17) 10% (5) 100% (50)
memory_cache 24% (12) 4% (2) 16% (8) 56% (28) 100% (50)
uncached_disk 86% (43) 4% (2) 8% (4) 2% (1) 100% (50)
uncached_string 64% (32) 22% (11) 12% (6) 2% (1) 100% (50)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 70% (56) 11% (9) 12% (10) 6% (5) 100% (80)
mini-language 40% (16) 20% (8) 17% (7) 22% (9) 100% (40)
pure-perl 35% (14) 25% (10) 22% (9) 17% (7) 100% (40)
pure-perl,mini-language 27% (11) 15% (6) 22% (9) 35% (14) 100% (40)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
deep_data_structure_value 45% (9) 25% (5) 20% (4) 10% (2) 100% (20)
hash_variable_value 50% (10) 25% (5) 15% (3) 10% (2) 100% (20)
literal_text 30% (6) 20% (4) 45% (9) 5% (1) 100% (20)
records_loop_template 40% (8) 10% (2) 25% (5) 25% (5) 100% (20)
records_loop_value 40% (8) 15% (3) 25% (5) 20% (4) 100% (20)
scalar_variable 60% (12) 15% (3) 5% (1) 20% (4) 100% (20)
variable_if_else_literal 60% (12) 0% (0) 15% (3) 25% (5) 100% (20)
variable_if_else_template 50% (10) 25% (5) 5% (1) 20% (4) 100% (20)
variable_if_literal 60% (12) 10% (2) 10% (2) 20% (4) 100% (20)
variable_if_template 50% (10) 20% (4) 10% (2) 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 63% (163) 35% (90) 0% (2) 0% (0) 100% (255)
uncached_disk 46% (118) 19% (50) 22% (58) 11% (29) 100% (255)
uncached_string 58% (148) 19% (49) 8% (22) 14% (36) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (198) 23% (73) 6% (19) 5% (16) 100% (306)
mini-language 49% (76) 18% (28) 26% (41) 5% (8) 100% (153)
pure-perl 42% (65) 34% (53) 8% (13) 14% (22) 100% (153)
pure-perl,mini-language 58% (90) 22% (35) 5% (9) 12% (19) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 46% (118) 33% (86) 18% (46) 1% (5) 100% (255)
15 60% (154) 20% (53) 7% (19) 11% (29) 100% (255)
30 61% (157) 19% (50) 6% (17) 12% (31) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 77% (35) 20% (9) 2% (1) 0% (0) 100% (45)
constant_expression 75% (34) 22% (10) 2% (1) 0% (0) 100% (45)
constant_function 77% (35) 22% (10) 0% (0) 0% (0) 100% (45)
constant_if_else_literal 55% (25) 37% (17) 6% (3) 0% (0) 100% (45)
constant_if_else_template 55% (25) 37% (17) 6% (3) 0% (0) 100% (45)
constant_if_literal 71% (32) 26% (12) 2% (1) 0% (0) 100% (45)
constant_if_template 66% (30) 31% (14) 2% (1) 0% (0) 100% (45)
literal_text 33% (15) 33% (15) 24% (11) 8% (4) 100% (45)
records_loop_template 60% (27) 35% (16) 4% (2) 0% (0) 100% (45)
records_loop_value 60% (27) 35% (16) 4% (2) 0% (0) 100% (45)
scalar_variable 28% (13) 15% (7) 28% (13) 26% (12) 100% (45)
variable_expression 75% (34) 22% (10) 2% (1) 0% (0) 100% (45)
variable_function 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
variable_if_else_literal 33% (15) 15% (7) 28% (13) 22% (10) 100% (45)
variable_if_else_template 33% (15) 15% (7) 24% (11) 26% (12) 100% (45)
variable_if_literal 33% (15) 15% (7) 22% (10) 28% (13) 100% (45)
variable_if_template 33% (15) 15% (7) 20% (9) 31% (14) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 69% (59) 25% (22) 4% (4) 0% (0) 100% (85)
uncached_disk 71% (61) 0% (0) 17% (15) 10% (9) 100% (85)
uncached_string 71% (61) 1% (1) 15% (13) 11% (10) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 78% (80) 8% (9) 12% (13) 0% (0) 100% (102)
mini-language 70% (36) 5% (3) 23% (12) 0% (0) 100% (51)
pure-perl 56% (29) 17% (9) 7% (4) 17% (9) 100% (51)
pure-perl,mini-language 70% (36) 3% (2) 5% (3) 19% (10) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
constant_expression 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)
constant_function 86% (13) 13% (2) 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 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
literal_text 20% (3) 33% (5) 46% (7) 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) 0% (0) 53% (8) 26% (4) 100% (15)
variable_expression 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_function 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_else_literal 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
variable_if_else_template 33% (5) 13% (2) 33% (5) 20% (3) 100% (15)
variable_if_literal 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
variable_if_template 20% (3) 26% (4) 26% (4) 26% (4) 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) 13% (16) 66% (80) 100% (120)

Performance 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) 33% (8) 66% (16) 100% (24)
pure-perl 0% (0) 0% (0) 0% (0) 100% (24) 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) 30% (12) 50% (20) 100% (40)
15 20% (8) 0% (0) 5% (2) 75% (30) 100% (40)
30 20% (8) 0% (0) 5% (2) 75% (30) 100% (40)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
literal_text 20% (3) 0% (0) 40% (6) 40% (6) 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) 13% (2) 66% (10) 100% (15)
variable_if_else_literal 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
variable_if_else_template 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
variable_if_literal 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
variable_if_template 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)

Performance Drop-off Distribution by Cache Type

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

Performance Drop-off Distribution by Comparable Engines

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

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 20% (51) 0% (0) 3% (8) 76% (196) 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) 0% (0) 100% (102) 100% (102)
not-pure-perl 0% (0) 0% (0) 4% (5) 95% (97) 100% (102)
not-pure-perl,mini-language 0% (0) 0% (0) 4% (5) 95% (97) 100% (102)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (34) 0% (0) 0% (0) 80% (136) 100% (170)
15 20% (34) 0% (0) 2% (4) 77% (132) 100% (170)
30 20% (34) 0% (0) 3% (6) 76% (130) 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 20% (6) 0% (0) 20% (6) 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 20% (6) 0% (0) 13% (4) 66% (20) 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 20% (17) 0% (0) 4% (4) 75% (64) 100% (85)
uncached_string 20% (17) 0% (0) 7% (6) 72% (62) 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) 0% (0) 100% (34) 100% (34)
not-pure-perl 0% (0) 0% (0) 14% (5) 85% (29) 100% (34)
not-pure-perl,mini-language 0% (0) 0% (0) 14% (5) 85% (29) 100% (34)

Performance Drop-off Distribution by Feature

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

MoTe, Mojo::Template (0.999929)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (72) 0% (0) 13% (50) 66% (238) 100% (360)
uncached_disk 27% (98) 56% (203) 16% (59) 0% (0) 100% (360)
uncached_string 24% (89) 45% (164) 25% (93) 3% (14) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (217) 8% (38) 26% (116) 14% (61) 100% (432)
embedded-perl 8% (19) 54% (117) 11% (24) 25% (56) 100% (216)
pure-perl 1% (4) 43% (95) 17% (38) 36% (79) 100% (216)
pure-perl,embedded-perl 8% (19) 54% (117) 11% (24) 25% (56) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 21% (76) 43% (156) 13% (48) 22% (80) 100% (360)
15 24% (88) 29% (107) 22% (80) 23% (85) 100% (360)
30 26% (95) 28% (104) 20% (74) 24% (87) 100% (360)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 28% (34) 24% (29) 44% (53) 3% (4) 100% (120)
uncached_disk 51% (62) 36% (44) 11% (14) 0% (0) 100% (120)
uncached_string 30% (36) 35% (43) 30% (37) 3% (4) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (76) 22% (33) 22% (33) 1% (2) 100% (144)
embedded-perl 37% (27) 43% (31) 19% (14) 0% (0) 100% (72)
pure-perl 2% (2) 29% (21) 59% (43) 8% (6) 100% (72)
pure-perl,embedded-perl 37% (27) 43% (31) 19% (14) 0% (0) 100% (72)

Performance Drop-off Distribution by Feature

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

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (45) 0% (0) 24% (22) 25% (23) 100% (90)
mini-language 0% (0) 0% (0) 22% (10) 77% (35) 100% (45)
pure-perl 0% (0) 0% (0) 48% (22) 51% (23) 100% (45)
pure-perl,mini-language 0% (0) 0% (0) 15% (7) 84% (38) 100% (45)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (15) 0% (0) 0% (0) 80% (60) 100% (75)
15 20% (15) 0% (0) 40% (30) 40% (30) 100% (75)
30 20% (15) 0% (0) 41% (31) 38% (29) 100% (75)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
array_loop_value 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
constant_if_else_literal 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
constant_if_else_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
constant_if_literal 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
constant_if_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
deep_data_structure_value 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
hash_variable_value 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
records_loop_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
records_loop_value 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
scalar_variable 20% (3) 0% (0) 53% (8) 26% (4) 100% (15)
variable_if_else_literal 20% (3) 0% (0) 13% (2) 66% (10) 100% (15)
variable_if_else_template 20% (3) 0% (0) 53% (8) 26% (4) 100% (15)
variable_if_literal 20% (3) 0% (0) 20% (3) 60% (9) 100% (15)
variable_if_template 20% (3) 0% (0) 53% (8) 26% (4) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 100% (75) 0% (0) 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 100% (15) 0% (0) 0% (0) 0% (0) 100% (15)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
array_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_literal 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_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)

PT, Parse::Template (3.07)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 58% (150) 19% (50) 21% (55) 0% (0) 100% (255)
uncached_string 20% (51) 0% (0) 2% (6) 77% (198) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 60% (123) 8% (18) 6% (14) 24% (49) 100% (204)
embedded-perl 28% (29) 7% (8) 13% (14) 50% (51) 100% (102)
pure-perl 19% (20) 15% (16) 18% (19) 46% (47) 100% (102)
pure-perl,embedded-perl 28% (29) 7% (8) 13% (14) 50% (51) 100% (102)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (34) 18% (31) 25% (43) 36% (62) 100% (170)
15 48% (82) 6% (11) 5% (9) 40% (68) 100% (170)
30 50% (85) 4% (8) 5% (9) 40% (68) 100% (170)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 20% (6) 13% (4) 26% (8) 40% (12) 100% (30)
array_variable_value 46% (14) 6% (2) 10% (3) 36% (11) 100% (30)
complex_variable_expression 33% (10) 20% (6) 6% (2) 40% (12) 100% (30)
constant_expression 46% (14) 6% (2) 6% (2) 40% (12) 100% (30)
constant_function 46% (14) 3% (1) 10% (3) 40% (12) 100% (30)
constant_if_else_literal 40% (12) 13% (4) 6% (2) 40% (12) 100% (30)
constant_if_literal 46% (14) 6% (2) 6% (2) 40% (12) 100% (30)
deep_data_structure_value 33% (10) 26% (8) 0% (0) 40% (12) 100% (30)
hash_loop_value 33% (10) 6% (2) 20% (6) 40% (12) 100% (30)
hash_variable_value 46% (14) 6% (2) 10% (3) 36% (11) 100% (30)
literal_text 20% (6) 0% (0) 46% (14) 33% (10) 100% (30)
records_loop_value 33% (10) 13% (4) 13% (4) 40% (12) 100% (30)
scalar_variable 46% (14) 6% (2) 13% (4) 33% (10) 100% (30)
variable_expression 36% (11) 10% (3) 13% (4) 40% (12) 100% (30)
variable_function 46% (14) 6% (2) 6% (2) 40% (12) 100% (30)
variable_if_else_literal 46% (14) 13% (4) 0% (0) 40% (12) 100% (30)
variable_if_literal 46% (14) 6% (2) 6% (2) 40% (12) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 85% (73) 11% (10) 2% (2) 0% (0) 100% (85)
uncached_string 20% (17) 0% (0) 12% (11) 67% (57) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 69% (47) 5% (4) 1% (1) 23% (16) 100% (68)
embedded-perl 47% (16) 0% (0) 17% (6) 35% (12) 100% (34)
pure-perl 32% (11) 17% (6) 0% (0) 50% (17) 100% (34)
pure-perl,embedded-perl 47% (16) 0% (0) 17% (6) 35% (12) 100% (34)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 40% (4) 20% (2) 0% (0) 40% (4) 100% (10)
array_variable_value 60% (6) 0% (0) 20% (2) 20% (2) 100% (10)
complex_variable_expression 50% (5) 10% (1) 0% (0) 40% (4) 100% (10)
constant_expression 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
constant_function 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
constant_if_else_literal 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
constant_if_literal 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
deep_data_structure_value 50% (5) 10% (1) 0% (0) 40% (4) 100% (10)
hash_loop_value 40% (4) 20% (2) 20% (2) 20% (2) 100% (10)
hash_variable_value 60% (6) 0% (0) 20% (2) 20% (2) 100% (10)
literal_text 20% (2) 20% (2) 20% (2) 40% (4) 100% (10)
records_loop_value 40% (4) 20% (2) 20% (2) 20% (2) 100% (10)
scalar_variable 60% (6) 0% (0) 30% (3) 10% (1) 100% (10)
variable_expression 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
variable_function 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
variable_if_else_literal 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)
variable_if_literal 60% (6) 0% (0) 0% (0) 40% (4) 100% (10)

Sol, Solution (0.0004)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 75% (214) 5% (15) 14% (40) 5% (16) 100% (285)
uncached_string 21% (61) 25% (73) 26% (76) 26% (75) 100% (285)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 67% (154) 12% (28) 10% (25) 9% (21) 100% (228)
mini-language 35% (40) 2% (3) 44% (51) 17% (20) 100% (114)
pure-perl 36% (42) 27% (31) 16% (19) 19% (22) 100% (114)
pure-perl,mini-language 34% (39) 22% (26) 18% (21) 24% (28) 100% (114)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 32% (62) 12% (23) 23% (44) 32% (61) 100% (190)
15 55% (105) 17% (34) 18% (36) 7% (15) 100% (190)
30 56% (108) 16% (31) 18% (36) 7% (15) 100% (190)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 98% (94) 1% (1) 0% (0) 0% (0) 100% (95)
uncached_string 100% (95) 0% (0) 0% (0) 0% (0) 100% (95)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 98% (75) 1% (1) 0% (0) 0% (0) 100% (76)
mini-language 100% (38) 0% (0) 0% (0) 0% (0) 100% (38)
pure-perl 100% (38) 0% (0) 0% (0) 0% (0) 100% (38)
pure-perl,mini-language 100% (38) 0% (0) 0% (0) 0% (0) 100% (38)

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)
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_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 90% (9) 10% (1) 0% (0) 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 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)

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% (51) 5% (14) 38% (97) 36% (93) 100% (255)
memory_cache 39% (101) 18% (48) 12% (32) 29% (74) 100% (255)
uncached_string 20% (51) 5% (14) 36% (92) 38% (98) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (156) 7% (23) 22% (68) 19% (59) 100% (306)
mini-language 14% (22) 6% (10) 35% (55) 43% (66) 100% (153)
pure-perl 1% (3) 17% (27) 37% (57) 43% (66) 100% (153)
pure-perl,mini-language 14% (22) 10% (16) 26% (41) 48% (74) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (51) 0% (0) 24% (62) 55% (142) 100% (255)
15 28% (73) 12% (31) 33% (86) 25% (65) 100% (255)
30 30% (79) 17% (45) 28% (73) 22% (58) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
complex_variable_expression 28% (13) 15% (7) 26% (12) 28% (13) 100% (45)
constant_expression 28% (13) 15% (7) 22% (10) 33% (15) 100% (45)
constant_function 28% (13) 26% (12) 20% (9) 24% (11) 100% (45)
constant_if_else_literal 20% (9) 6% (3) 24% (11) 48% (22) 100% (45)
constant_if_else_template 20% (9) 8% (4) 33% (15) 37% (17) 100% (45)
constant_if_literal 28% (13) 2% (1) 33% (15) 35% (16) 100% (45)
constant_if_template 24% (11) 13% (6) 37% (17) 24% (11) 100% (45)
literal_text 20% (9) 0% (0) 4% (2) 75% (34) 100% (45)
records_loop_template 33% (15) 6% (3) 26% (12) 33% (15) 100% (45)
records_loop_value 37% (17) 2% (1) 33% (15) 26% (12) 100% (45)
scalar_variable 24% (11) 4% (2) 44% (20) 26% (12) 100% (45)
variable_expression 20% (9) 11% (5) 26% (12) 42% (19) 100% (45)
variable_function 20% (9) 20% (9) 37% (17) 22% (10) 100% (45)
variable_if_else_literal 28% (13) 8% (4) 26% (12) 35% (16) 100% (45)
variable_if_else_template 28% (13) 8% (4) 35% (16) 26% (12) 100% (45)
variable_if_literal 28% (13) 8% (4) 24% (11) 37% (17) 100% (45)
variable_if_template 28% (13) 8% (4) 33% (15) 28% (13) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 29% (25) 61% (52) 9% (8) 0% (0) 100% (85)
memory_cache 88% (75) 11% (10) 0% (0) 0% (0) 100% (85)
uncached_string 55% (47) 31% (27) 7% (6) 5% (5) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 79% (81) 18% (19) 0% (1) 0% (1) 100% (102)
mini-language 56% (29) 39% (20) 1% (1) 1% (1) 100% (51)
pure-perl 39% (20) 56% (29) 1% (1) 1% (1) 100% (51)
pure-perl,mini-language 33% (17) 41% (21) 21% (11) 3% (2) 100% (51)

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (0) 12% (44) 49% (171) 37% (130) 100% (345)
instance_reuse 49% (172) 47% (165) 1% (6) 0% (2) 100% (345)
uncached_string 20% (69) 7% (26) 34% (119) 37% (131) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 38% (161) 13% (56) 29% (124) 17% (73) 100% (414)
mini-language 18% (38) 20% (42) 26% (55) 34% (72) 100% (207)
pure-perl 11% (24) 38% (79) 23% (49) 26% (55) 100% (207)
pure-perl,mini-language 8% (18) 28% (58) 32% (68) 30% (63) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 15% (55) 24% (85) 22% (76) 37% (129) 100% (345)
15 26% (90) 21% (75) 29% (102) 22% (78) 100% (345)
30 27% (96) 21% (75) 34% (118) 16% (56) 100% (345)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 61% (71) 22% (26) 6% (8) 8% (10) 100% (115)
instance_reuse 59% (68) 23% (27) 16% (19) 0% (1) 100% (115)
uncached_string 87% (101) 8% (10) 0% (0) 3% (4) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 68% (94) 8% (12) 15% (21) 7% (11) 100% (138)
mini-language 86% (60) 8% (6) 1% (1) 2% (2) 100% (69)
pure-perl 76% (53) 18% (13) 2% (2) 1% (1) 100% (69)
pure-perl,mini-language 47% (33) 46% (32) 4% (3) 1% (1) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
array_loop_value 80% (12) 13% (2) 6% (1) 0% (0) 100% (15)
array_variable_value 53% (8) 26% (4) 13% (2) 6% (1) 100% (15)
complex_variable_expression 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
constant_expression 60% (9) 26% (4) 6% (1) 6% (1) 100% (15)
constant_if_else_literal 73% (11) 20% (3) 6% (1) 0% (0) 100% (15)
constant_if_else_template 60% (9) 26% (4) 6% (1) 6% (1) 100% (15)
constant_if_literal 73% (11) 26% (4) 0% (0) 0% (0) 100% (15)
constant_if_template 66% (10) 26% (4) 6% (1) 0% (0) 100% (15)
deep_data_structure_value 66% (10) 20% (3) 6% (1) 6% (1) 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) 6% (1) 46% (7) 40% (6) 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 66% (10) 20% (3) 6% (1) 6% (1) 100% (15)
variable_expression 80% (12) 6% (1) 6% (1) 6% (1) 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 66% (10) 20% (3) 6% (1) 6% (1) 100% (15)
variable_if_literal 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
variable_if_template 80% (12) 6% (1) 13% (2) 0% (0) 100% (15)

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 38% (134) 42% (147) 16% (56) 2% (8) 100% (345)
instance_reuse 14% (51) 52% (181) 29% (101) 3% (12) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 37% (103) 38% (105) 17% (48) 7% (20) 100% (276)
mini-language 25% (35) 55% (76) 19% (27) 0% (0) 100% (138)
pure-perl 13% (19) 60% (83) 26% (36) 0% (0) 100% (138)
pure-perl,mini-language 20% (28) 46% (64) 33% (46) 0% (0) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 13% (30) 51% (119) 32% (75) 2% (6) 100% (230)
15 31% (72) 47% (110) 17% (41) 3% (7) 100% (230)
30 36% (83) 43% (99) 17% (41) 3% (7) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 70% (81) 19% (22) 5% (6) 5% (6) 100% (115)
instance_reuse 38% (44) 38% (44) 15% (18) 7% (9) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (48) 10% (10) 20% (19) 16% (15) 100% (92)
mini-language 71% (33) 26% (12) 2% (1) 0% (0) 100% (46)
pure-perl 63% (29) 30% (14) 6% (3) 0% (0) 100% (46)
pure-perl,mini-language 32% (15) 65% (30) 2% (1) 0% (0) 100% (46)

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (72) 55% (192) 11% (41) 11% (40) 100% (345)
instance_reuse 11% (38) 28% (100) 44% (152) 15% (55) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 16% (46) 44% (122) 17% (48) 21% (60) 100% (276)
mini-language 20% (28) 47% (65) 23% (33) 8% (12) 100% (138)
pure-perl 13% (18) 44% (61) 35% (49) 7% (10) 100% (138)
pure-perl,mini-language 13% (18) 31% (44) 45% (63) 9% (13) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (0) 26% (62) 45% (105) 27% (63) 100% (230)
15 21% (49) 50% (115) 20% (47) 8% (19) 100% (230)
30 26% (61) 50% (115) 17% (41) 5% (13) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 89% (103) 6% (7) 4% (5) 0% (0) 100% (115)
instance_reuse 82% (95) 11% (13) 4% (5) 1% (2) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 76% (70) 14% (13) 8% (8) 1% (1) 100% (92)
mini-language 95% (44) 2% (1) 0% (0) 2% (1) 100% (46)
pure-perl 93% (43) 4% (2) 2% (1) 0% (0) 100% (46)
pure-perl,mini-language 89% (41) 8% (4) 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 40% (4) 50% (5) 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) 30% (3) 20% (2) 0% (0) 100% (10)
constant_if_template 80% (8) 20% (2) 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) 30% (3) 20% (2) 100% (10)
records_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
records_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
scalar_variable 100% (10) 0% (0) 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 80% (8) 10% (1) 10% (1) 0% (0) 100% (10)
variable_if_else_template 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_if_literal 80% (8) 10% (1) 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) 13% (47) 28% (97) 58% (201) 100% (345)
instance_reuse 26% (93) 42% (146) 28% (98) 2% (8) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 15% (44) 22% (61) 27% (76) 34% (95) 100% (276)
mini-language 19% (27) 28% (39) 27% (38) 24% (34) 100% (138)
pure-perl 13% (18) 33% (46) 24% (34) 28% (40) 100% (138)
pure-perl,mini-language 2% (4) 34% (47) 34% (47) 28% (40) 100% (138)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (1) 14% (33) 36% (85) 48% (111) 100% (230)
15 15% (36) 36% (83) 21% (49) 26% (62) 100% (230)
30 24% (56) 33% (77) 26% (61) 15% (36) 100% (230)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 86% (100) 5% (6) 3% (4) 4% (5) 100% (115)
instance_reuse 94% (109) 0% (1) 2% (3) 1% (2) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 89% (82) 2% (2) 5% (5) 3% (3) 100% (92)
mini-language 95% (44) 0% (0) 0% (0) 4% (2) 100% (46)
pure-perl 91% (42) 4% (2) 2% (1) 2% (1) 100% (46)
pure-perl,mini-language 89% (41) 6% (3) 2% (1) 2% (1) 100% (46)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
array_loop_value 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
array_variable_value 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 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
constant_if_else_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
constant_if_else_template 90% (9) 0% (0) 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 70% (7) 20% (2) 10% (1) 0% (0) 100% (10)
literal_text 0% (0) 0% (0) 30% (3) 70% (7) 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 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_function 90% (9) 10% (1) 0% (0) 0% (0) 100% (10)
variable_if_else_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_else_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_literal 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)
variable_if_template 100% (10) 0% (0) 0% (0) 0% (0) 100% (10)

TS, Template::Sandbox (1.04_01) without caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 26% (94) 30% (110) 28% (101) 15% (55) 100% (360)
uncached_disk 20% (72) 28% (102) 43% (156) 8% (30) 100% (360)
uncached_string 20% (72) 26% (97) 46% (167) 6% (24) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (216) 25% (109) 24% (106) 0% (1) 100% (432)
mini-language 1% (4) 18% (39) 71% (154) 8% (19) 100% (216)
pure-perl 0% (0) 55% (119) 44% (96) 0% (1) 100% (216)
pure-perl,mini-language 8% (18) 19% (42) 31% (68) 40% (88) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 25% (92) 26% (94) 41% (150) 6% (24) 100% (360)
15 20% (73) 26% (96) 41% (148) 11% (43) 100% (360)
30 20% (73) 33% (119) 35% (126) 11% (42) 100% (360)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 25% (31) 40% (49) 16% (20) 16% (20) 100% (120)
uncached_disk 63% (76) 30% (36) 3% (4) 3% (4) 100% (120)
uncached_string 69% (83) 27% (33) 3% (4) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 84% (121) 12% (18) 0% (1) 2% (4) 100% (144)
mini-language 50% (36) 38% (28) 5% (4) 5% (4) 100% (72)
pure-perl 38% (28) 52% (38) 2% (2) 5% (4) 100% (72)
pure-perl,mini-language 6% (5) 47% (34) 29% (21) 16% (12) 100% (72)

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 22% (80) 26% (97) 36% (131) 14% (52) 100% (360)
memory_cache 0% (0) 18% (68) 52% (189) 28% (103) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 25% (72) 9% (26) 51% (149) 14% (41) 100% (288)
mini-language 0% (0) 42% (61) 38% (56) 18% (27) 100% (144)
pure-perl 0% (0) 13% (20) 53% (77) 32% (47) 100% (144)
pure-perl,mini-language 5% (8) 40% (58) 26% (38) 27% (40) 100% (144)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 13% (32) 36% (88) 38% (92) 11% (28) 100% (240)
15 10% (24) 21% (52) 47% (115) 20% (49) 100% (240)
30 10% (24) 10% (25) 47% (113) 32% (78) 100% (240)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 1% (2) 0% (0) 25% (31) 72% (87) 100% (120)
memory_cache 14% (17) 30% (37) 33% (40) 21% (26) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 12% (12) 9% (9) 36% (35) 41% (40) 100% (96)
mini-language 2% (1) 22% (11) 22% (11) 52% (25) 100% (48)
pure-perl 10% (5) 12% (6) 41% (20) 35% (17) 100% (48)
pure-perl,mini-language 2% (1) 22% (11) 10% (5) 64% (31) 100% (48)

Performance Drop-off Distribution by Feature

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

TS_CFM, Template::Sandbox (1.04_01) with Cache::FastMemoryCache (0.01) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 8% (32) 44% (160) 39% (142) 7% (26) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 0% (0) 54% (79) 36% (52) 9% (13) 100% (144)
mini-language 22% (16) 48% (35) 29% (21) 0% (0) 100% (72)
pure-perl 0% (0) 15% (11) 66% (48) 18% (13) 100% (72)
pure-perl,mini-language 22% (16) 48% (35) 29% (21) 0% (0) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 13% (16) 56% (68) 30% (36) 0% (0) 100% (120)
15 6% (8) 35% (43) 45% (55) 11% (14) 100% (120)
30 6% (8) 40% (49) 42% (51) 10% (12) 100% (120)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 15% (19) 25% (31) 30% (37) 27% (33) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 20% (10) 16% (8) 35% (17) 27% (13) 100% (48)
mini-language 8% (2) 37% (9) 25% (6) 29% (7) 100% (24)
pure-perl 20% (5) 20% (5) 33% (8) 25% (6) 100% (24)
pure-perl,mini-language 8% (2) 37% (9) 25% (6) 29% (7) 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 0% (0) 0% (0) 100% (5) 0% (0) 100% (5)
complex_variable_expression 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
constant_expression 0% (0) 0% (0) 20% (1) 80% (4) 100% (5)
constant_function 20% (1) 40% (2) 40% (2) 0% (0) 100% (5)
constant_if_else_literal 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
constant_if_else_template 0% (0) 0% (0) 60% (3) 40% (2) 100% (5)
constant_if_literal 20% (1) 40% (2) 40% (2) 0% (0) 100% (5)
constant_if_template 0% (0) 0% (0) 60% (3) 40% (2) 100% (5)
deep_data_structure_value 0% (0) 80% (4) 20% (1) 0% (0) 100% (5)
hash_loop_template 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)
hash_loop_value 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)
hash_variable_value 0% (0) 80% (4) 20% (1) 0% (0) 100% (5)
literal_text 0% (0) 20% (1) 40% (2) 40% (2) 100% (5)
records_loop_template 60% (3) 40% (2) 0% (0) 0% (0) 100% (5)
records_loop_value 0% (0) 40% (2) 40% (2) 20% (1) 100% (5)
scalar_variable 0% (0) 80% (4) 20% (1) 0% (0) 100% (5)
variable_expression 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
variable_function 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
variable_if_else_literal 0% (0) 0% (0) 100% (5) 0% (0) 100% (5)
variable_if_else_template 0% (0) 80% (4) 20% (1) 0% (0) 100% (5)
variable_if_literal 0% (0) 0% (0) 80% (4) 20% (1) 100% (5)
variable_if_template 0% (0) 0% (0) 80% (4) 20% (1) 100% (5)

TS_CHI, Template::Sandbox (1.04_01) with CHI (0.36) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 0% (0) 7% (28) 28% (104) 63% (228) 100% (360)
memory_cache 57% (208) 28% (102) 13% (50) 0% (0) 100% (360)
shared_memory_cache 98% (355) 0% (0) 0% (0) 1% (5) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (223) 8% (38) 14% (63) 25% (108) 100% (432)
mini-language 60% (130) 6% (14) 16% (35) 17% (37) 100% (216)
pure-perl 37% (80) 22% (48) 20% (44) 20% (44) 100% (216)
pure-perl,mini-language 60% (130) 13% (30) 5% (12) 20% (44) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 53% (192) 12% (46) 22% (82) 11% (40) 100% (360)
15 52% (188) 11% (41) 13% (47) 23% (84) 100% (360)
30 50% (183) 11% (43) 6% (25) 30% (109) 100% (360)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 19% (23) 25% (30) 37% (45) 18% (22) 100% (120)
memory_cache 60% (72) 35% (42) 5% (6) 0% (0) 100% (120)
shared_memory_cache 16% (20) 0% (0) 0% (0) 83% (100) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 46% (67) 16% (24) 6% (9) 30% (44) 100% (144)
mini-language 20% (15) 30% (22) 15% (11) 33% (24) 100% (72)
pure-perl 25% (18) 16% (12) 26% (19) 31% (23) 100% (72)
pure-perl,mini-language 20% (15) 19% (14) 16% (12) 43% (31) 100% (72)

Performance Drop-off Distribution by Feature

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

TS_CRF, Template::Sandbox (1.04_01) with Cache::Ref::FIFO (0.04) caching

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 0% (0) 5% (18) 30% (109) 64% (233) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 0% (0) 2% (4) 19% (28) 77% (112) 100% (144)
mini-language 0% (0) 9% (7) 38% (28) 51% (37) 100% (72)
pure-perl 0% (0) 0% (0) 34% (25) 65% (47) 100% (72)
pure-perl,mini-language 0% (0) 9% (7) 38% (28) 51% (37) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 0% (0) 1% (2) 28% (34) 70% (84) 100% (120)
15 0% (0) 3% (4) 21% (26) 75% (90) 100% (120)
30 0% (0) 10% (12) 40% (49) 49% (59) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 0% (0) 20% (3) 13% (2) 66% (10) 100% (15)
array_loop_value 0% (0) 20% (3) 13% (2) 66% (10) 100% (15)
array_variable_value 0% (0) 0% (0) 33% (5) 66% (10) 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) 53% (8) 46% (7) 100% (15)
hash_loop_template 0% (0) 20% (3) 13% (2) 66% (10) 100% (15)
hash_loop_value 0% (0) 0% (0) 33% (5) 66% (10) 100% (15)
hash_variable_value 0% (0) 0% (0) 40% (6) 60% (9) 100% (15)
literal_text 0% (0) 13% (2) 66% (10) 20% (3) 100% (15)
records_loop_template 0% (0) 0% (0) 86% (13) 13% (2) 100% (15)
records_loop_value 0% (0) 20% (3) 66% (10) 13% (2) 100% (15)
scalar_variable 0% (0) 26% (4) 53% (8) 20% (3) 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) 53% (8) 46% (7) 100% (15)
variable_if_else_template 0% (0) 0% (0) 66% (10) 33% (5) 100% (15)
variable_if_literal 0% (0) 0% (0) 53% (8) 46% (7) 100% (15)
variable_if_template 0% (0) 0% (0) 80% (12) 20% (3) 100% (15)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 30% (37) 35% (43) 24% (29) 9% (11) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 27% (13) 47% (23) 16% (8) 8% (4) 100% (48)
mini-language 37% (9) 25% (6) 29% (7) 8% (2) 100% (24)
pure-perl 25% (6) 33% (8) 29% (7) 12% (3) 100% (24)
pure-perl,mini-language 37% (9) 25% (6) 29% (7) 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 0% (0) 100% (5) 0% (0) 0% (0) 100% (5)
complex_variable_expression 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
constant_expression 0% (0) 0% (0) 20% (1) 80% (4) 100% (5)
constant_function 20% (1) 40% (2) 40% (2) 0% (0) 100% (5)
constant_if_else_literal 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
constant_if_else_template 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
constant_if_literal 0% (0) 0% (0) 0% (0) 100% (5) 100% (5)
constant_if_template 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
deep_data_structure_value 40% (2) 60% (3) 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 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)
literal_text 0% (0) 20% (1) 40% (2) 40% (2) 100% (5)
records_loop_template 60% (3) 40% (2) 0% (0) 0% (0) 100% (5)
records_loop_value 60% (3) 40% (2) 0% (0) 0% (0) 100% (5)
scalar_variable 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)
variable_expression 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
variable_function 0% (0) 20% (1) 80% (4) 0% (0) 100% (5)
variable_if_else_literal 0% (0) 100% (5) 0% (0) 0% (0) 100% (5)
variable_if_else_template 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)
variable_if_literal 0% (0) 100% (5) 0% (0) 0% (0) 100% (5)
variable_if_template 40% (2) 60% (3) 0% (0) 0% (0) 100% (5)

TS_FMM, Template::Sandbox (1.04_01) with Cache::FastMmap (1.36) 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)
15 0% (0) 0% (0) 0% (0) 100% (120) 100% (120)
30 4% (5) 0% (0) 0% (0) 95% (115) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
array_loop_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
array_variable_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
complex_variable_expression 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_expression 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_function 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_else_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_else_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_literal 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
constant_if_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
deep_data_structure_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_loop_template 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_loop_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
hash_variable_value 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
literal_text 0% (0) 0% (0) 0% (0) 100% (15) 100% (15)
records_loop_template 33% (5) 0% (0) 0% (0) 66% (10) 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 87% (105) 0% (0) 0% (0) 12% (15) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 87% (42) 0% (0) 0% (0) 12% (6) 100% (48)
mini-language 87% (21) 0% (0) 0% (0) 12% (3) 100% (24)
pure-perl 87% (21) 0% (0) 0% (0) 12% (3) 100% (24)
pure-perl,mini-language 87% (21) 0% (0) 0% (0) 12% (3) 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 0% (0) 0% (0) 0% (0) 100% (5) 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 93% (322) 6% (23) 0% (0) 0% (0) 100% (345)
instance_reuse 78% (271) 19% (66) 2% (8) 0% (0) 100% (345)
uncached_string 53% (186) 44% (155) 0% (3) 0% (1) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 82% (342) 17% (71) 0% (1) 0% (0) 100% (414)
mini-language 60% (125) 39% (81) 0% (1) 0% (0) 100% (207)
pure-perl 77% (161) 20% (43) 1% (3) 0% (0) 100% (207)
pure-perl,mini-language 72% (151) 23% (49) 2% (6) 0% (1) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 83% (288) 16% (57) 0% (0) 0% (0) 100% (345)
15 74% (256) 24% (86) 0% (3) 0% (0) 100% (345)
30 68% (235) 29% (101) 2% (8) 0% (1) 100% (345)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 73% (33) 24% (11) 2% (1) 0% (0) 100% (45)
array_loop_value 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
array_variable_value 86% (39) 13% (6) 0% (0) 0% (0) 100% (45)
complex_variable_expression 64% (29) 31% (14) 4% (2) 0% (0) 100% (45)
constant_expression 57% (26) 33% (15) 8% (4) 0% (0) 100% (45)
constant_if_else_literal 55% (25) 44% (20) 0% (0) 0% (0) 100% (45)
constant_if_else_template 60% (27) 40% (18) 0% (0) 0% (0) 100% (45)
constant_if_literal 55% (25) 44% (20) 0% (0) 0% (0) 100% (45)
constant_if_template 62% (28) 37% (17) 0% (0) 0% (0) 100% (45)
deep_data_structure_value 84% (38) 15% (7) 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 77% (35) 22% (10) 0% (0) 0% (0) 100% (45)
literal_text 73% (33) 17% (8) 6% (3) 2% (1) 100% (45)
records_loop_template 93% (42) 6% (3) 0% (0) 0% (0) 100% (45)
records_loop_value 93% (42) 6% (3) 0% (0) 0% (0) 100% (45)
scalar_variable 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
variable_expression 66% (30) 31% (14) 2% (1) 0% (0) 100% (45)
variable_function 82% (37) 17% (8) 0% (0) 0% (0) 100% (45)
variable_if_else_literal 68% (31) 31% (14) 0% (0) 0% (0) 100% (45)
variable_if_else_template 60% (27) 40% (18) 0% (0) 0% (0) 100% (45)
variable_if_literal 71% (32) 28% (13) 0% (0) 0% (0) 100% (45)
variable_if_template 80% (36) 20% (9) 0% (0) 0% (0) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (23) 33% (38) 38% (44) 8% (10) 100% (115)
instance_reuse 27% (32) 40% (47) 23% (27) 7% (9) 100% (115)
uncached_string 27% (32) 47% (55) 10% (12) 13% (16) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 56% (78) 33% (46) 7% (10) 2% (4) 100% (138)
mini-language 5% (4) 75% (52) 17% (12) 1% (1) 100% (69)
pure-perl 7% (5) 49% (34) 37% (26) 5% (4) 100% (69)
pure-perl,mini-language 0% (0) 11% (8) 50% (35) 37% (26) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (5) 46% (7) 13% (2) 6% (1) 100% (15)
array_loop_value 40% (6) 40% (6) 13% (2) 6% (1) 100% (15)
array_variable_value 20% (3) 53% (8) 13% (2) 13% (2) 100% (15)
complex_variable_expression 20% (3) 53% (8) 13% (2) 13% (2) 100% (15)
constant_expression 6% (1) 33% (5) 20% (3) 40% (6) 100% (15)
constant_if_else_literal 13% (2) 33% (5) 40% (6) 13% (2) 100% (15)
constant_if_else_template 20% (3) 46% (7) 20% (3) 13% (2) 100% (15)
constant_if_literal 13% (2) 33% (5) 46% (7) 6% (1) 100% (15)
constant_if_template 20% (3) 46% (7) 26% (4) 6% (1) 100% (15)
deep_data_structure_value 40% (6) 40% (6) 20% (3) 0% (0) 100% (15)
hash_loop_template 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
hash_loop_value 53% (8) 40% (6) 6% (1) 0% (0) 100% (15)
hash_variable_value 20% (3) 53% (8) 20% (3) 6% (1) 100% (15)
literal_text 0% (0) 26% (4) 46% (7) 26% (4) 100% (15)
records_loop_template 40% (6) 33% (5) 20% (3) 6% (1) 100% (15)
records_loop_value 26% (4) 46% (7) 26% (4) 0% (0) 100% (15)
scalar_variable 20% (3) 40% (6) 33% (5) 6% (1) 100% (15)
variable_expression 20% (3) 53% (8) 13% (2) 13% (2) 100% (15)
variable_function 26% (4) 26% (4) 26% (4) 20% (3) 100% (15)
variable_if_else_literal 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
variable_if_else_template 33% (5) 26% (4) 33% (5) 6% (1) 100% (15)
variable_if_literal 20% (3) 40% (6) 33% (5) 6% (1) 100% (15)
variable_if_template 26% (4) 40% (6) 26% (4) 6% (1) 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 42% (147) 34% (120) 2% (7) 20% (71) 100% (345)
instance_reuse 45% (157) 22% (78) 14% (50) 17% (60) 100% (345)
uncached_string 2% (9) 71% (247) 25% (89) 0% (0) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 10% (45) 53% (222) 4% (20) 30% (127) 100% (414)
mini-language 26% (54) 50% (105) 23% (48) 0% (0) 100% (207)
not-pure-perl 51% (107) 28% (59) 18% (39) 0% (2) 100% (207)
not-pure-perl,mini-language 51% (107) 28% (59) 18% (39) 0% (2) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 31% (108) 46% (160) 9% (33) 12% (44) 100% (345)
15 31% (108) 40% (139) 15% (54) 12% (44) 100% (345)
30 28% (97) 42% (146) 17% (59) 12% (43) 100% (345)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 21% (25) 38% (44) 28% (33) 11% (13) 100% (115)
instance_reuse 23% (27) 32% (37) 30% (35) 13% (16) 100% (115)
uncached_string 65% (75) 31% (36) 3% (4) 0% (0) 100% (115)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 23% (33) 50% (69) 15% (21) 10% (15) 100% (138)
mini-language 5% (4) 46% (32) 30% (21) 17% (12) 100% (69)
not-pure-perl 65% (45) 11% (8) 21% (15) 1% (1) 100% (69)
not-pure-perl,mini-language 65% (45) 11% (8) 21% (15) 1% (1) 100% (69)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 46% (7) 53% (8) 0% (0) 0% (0) 100% (15)
array_loop_value 53% (8) 46% (7) 0% (0) 0% (0) 100% (15)
array_variable_value 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
complex_variable_expression 46% (7) 33% (5) 13% (2) 6% (1) 100% (15)
constant_expression 40% (6) 33% (5) 0% (0) 26% (4) 100% (15)
constant_if_else_literal 26% (4) 46% (7) 26% (4) 0% (0) 100% (15)
constant_if_else_template 33% (5) 33% (5) 26% (4) 6% (1) 100% (15)
constant_if_literal 26% (4) 40% (6) 20% (3) 13% (2) 100% (15)
constant_if_template 20% (3) 33% (5) 26% (4) 20% (3) 100% (15)
deep_data_structure_value 46% (7) 13% (2) 26% (4) 13% (2) 100% (15)
hash_loop_template 60% (9) 26% (4) 13% (2) 0% (0) 100% (15)
hash_loop_value 60% (9) 26% (4) 13% (2) 0% (0) 100% (15)
hash_variable_value 33% (5) 33% (5) 20% (3) 13% (2) 100% (15)
literal_text 20% (3) 26% (4) 53% (8) 0% (0) 100% (15)
records_loop_template 46% (7) 53% (8) 0% (0) 0% (0) 100% (15)
records_loop_value 46% (7) 46% (7) 6% (1) 0% (0) 100% (15)
scalar_variable 33% (5) 20% (3) 33% (5) 13% (2) 100% (15)
variable_expression 46% (7) 33% (5) 13% (2) 6% (1) 100% (15)
variable_function 26% (4) 33% (5) 26% (4) 13% (2) 100% (15)
variable_if_else_literal 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
variable_if_else_template 40% (6) 20% (3) 33% (5) 6% (1) 100% (15)
variable_if_literal 20% (3) 33% (5) 33% (5) 13% (2) 100% (15)
variable_if_template 33% (5) 26% (4) 26% (4) 13% (2) 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 69% (240) 30% (105) 0% (0) 0% (0) 100% (345)
instance_reuse 50% (174) 41% (143) 6% (23) 1% (5) 100% (345)
uncached_string 0% (0) 26% (91) 48% (167) 25% (87) 100% (345)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 17% (72) 62% (260) 1% (8) 17% (74) 100% (414)
mini-language 35% (74) 34% (71) 29% (62) 0% (0) 100% (207)
not-pure-perl 64% (134) 1% (4) 28% (60) 4% (9) 100% (207)
not-pure-perl,mini-language 64% (134) 1% (4) 28% (60) 4% (9) 100% (207)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 49% (172) 25% (87) 15% (55) 8% (31) 100% (345)
15 36% (127) 36% (125) 18% (63) 8% (30) 100% (345)
30 33% (115) 36% (127) 20% (72) 8% (31) 100% (345)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 3% (5) 34% (47) 21% (29) 41% (57) 100% (138)
mini-language 1% (1) 14% (10) 44% (31) 39% (27) 100% (69)
not-pure-perl 44% (31) 20% (14) 17% (12) 17% (12) 100% (69)
not-pure-perl,mini-language 44% (31) 20% (14) 17% (12) 17% (12) 100% (69)

Performance Drop-off Distribution by Feature

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

TTiny, Template::Tiny (0.11)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_string 32% (64) 23% (45) 1% (2) 43% (84) 100% (195)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 56% (44) 16% (13) 0% (0) 26% (21) 100% (78)
mini-language 2% (1) 38% (15) 5% (2) 53% (21) 100% (39)
pure-perl 30% (12) 15% (6) 0% (0) 53% (21) 100% (39)
pure-perl,mini-language 17% (7) 28% (11) 0% (0) 53% (21) 100% (39)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (13) 0% (0) 0% (0) 80% (52) 100% (65)
15 30% (20) 41% (27) 3% (2) 24% (16) 100% (65)
30 47% (31) 27% (18) 0% (0) 24% (16) 100% (65)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (5) 33% (5) 6% (1) 26% (4) 100% (15)
array_loop_value 33% (5) 33% (5) 6% (1) 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 33% (5) 40% (6) 0% (0) 26% (4) 100% (15)
records_loop_template 26% (4) 46% (7) 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 40% (6) 33% (5) 0% (0) 26% (4) 100% (15)
variable_if_else_template 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
variable_if_literal 40% (6) 33% (5) 0% (0) 26% (4) 100% (15)
variable_if_template 40% (6) 33% (5) 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 100% (26) 0% (0) 0% (0) 0% (0) 100% (26)
mini-language 100% (13) 0% (0) 0% (0) 0% (0) 100% (13)
pure-perl 92% (12) 7% (1) 0% (0) 0% (0) 100% (13)
pure-perl,mini-language 76% (10) 15% (2) 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 60% (3) 20% (1) 20% (1) 0% (0) 100% (5)
deep_data_structure_value 80% (4) 20% (1) 0% (0) 0% (0) 100% (5)
hash_variable_value 80% (4) 20% (1) 0% (0) 0% (0) 100% (5)
literal_text 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
records_loop_value 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
scalar_variable 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)

TeCS, Text::ClearSilver (0.10.5.4)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 24% (81) 50% (168) 23% (79) 0% (2) 100% (330)
uncached_disk 20% (66) 0% (0) 1% (4) 78% (260) 100% (330)
uncached_string 20% (66) 0% (0) 1% (4) 78% (260) 100% (330)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (199) 6% (25) 10% (40) 33% (132) 100% (396)
mini-language 2% (4) 10% (21) 19% (39) 67% (134) 100% (198)
not-pure-perl 2% (5) 30% (61) 2% (4) 64% (128) 100% (198)
not-pure-perl,mini-language 2% (5) 30% (61) 2% (4) 64% (128) 100% (198)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 21% (71) 22% (73) 4% (16) 51% (170) 100% (330)
15 20% (69) 14% (49) 11% (37) 53% (175) 100% (330)
30 22% (73) 13% (46) 10% (34) 53% (177) 100% (330)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 39% (43) 25% (28) 12% (14) 22% (25) 100% (110)
uncached_disk 20% (22) 0% (0) 15% (17) 64% (71) 100% (110)
uncached_string 20% (22) 0% (0) 14% (16) 65% (72) 100% (110)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (66) 8% (11) 3% (5) 37% (50) 100% (132)
mini-language 1% (1) 13% (9) 9% (6) 75% (50) 100% (66)
not-pure-perl 15% (10) 6% (4) 27% (18) 51% (34) 100% (66)
not-pure-perl,mini-language 15% (10) 6% (4) 27% (18) 51% (34) 100% (66)

Performance Drop-off Distribution by Feature

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

TeClev, Text::Clevery (0.0003) in XS mode

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 22% (68) 10% (30) 41% (123) 26% (79) 100% (300)
instance_reuse 20% (60) 32% (98) 7% (23) 39% (119) 100% (300)
uncached_disk 77% (232) 22% (66) 0% (2) 0% (0) 100% (300)
uncached_string 89% (268) 10% (32) 0% (0) 0% (0) 100% (300)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (360) 2% (13) 5% (25) 17% (82) 100% (480)
mini-language 38% (92) 20% (49) 7% (17) 34% (82) 100% (240)
not-pure-perl 36% (88) 34% (82) 22% (53) 7% (17) 100% (240)
not-pure-perl,mini-language 36% (88) 34% (82) 22% (53) 7% (17) 100% (240)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 52% (208) 22% (91) 9% (37) 16% (64) 100% (400)
15 51% (205) 18% (73) 15% (60) 15% (62) 100% (400)
30 53% (215) 15% (62) 12% (51) 18% (72) 100% (400)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 48% (29) 18% (11) 13% (8) 20% (12) 100% (60)
array_loop_value 56% (34) 13% (8) 6% (4) 23% (14) 100% (60)
array_variable_value 55% (33) 18% (11) 15% (9) 11% (7) 100% (60)
complex_variable_expression 56% (34) 6% (4) 16% (10) 20% (12) 100% (60)
constant_expression 41% (25) 33% (20) 15% (9) 10% (6) 100% (60)
constant_if_else_literal 55% (33) 18% (11) 13% (8) 13% (8) 100% (60)
constant_if_else_template 31% (19) 36% (22) 8% (5) 23% (14) 100% (60)
constant_if_literal 51% (31) 28% (17) 10% (6) 10% (6) 100% (60)
constant_if_template 46% (28) 23% (14) 13% (8) 16% (10) 100% (60)
deep_data_structure_value 56% (34) 13% (8) 16% (10) 13% (8) 100% (60)
hash_variable_value 48% (29) 23% (14) 8% (5) 20% (12) 100% (60)
literal_text 73% (44) 13% (8) 5% (3) 8% (5) 100% (60)
records_loop_template 55% (33) 11% (7) 6% (4) 26% (16) 100% (60)
records_loop_value 60% (36) 6% (4) 10% (6) 23% (14) 100% (60)
scalar_variable 55% (33) 15% (9) 20% (12) 10% (6) 100% (60)
variable_expression 38% (23) 30% (18) 11% (7) 20% (12) 100% (60)
variable_if_else_literal 60% (36) 15% (9) 11% (7) 13% (8) 100% (60)
variable_if_else_template 50% (30) 21% (13) 15% (9) 13% (8) 100% (60)
variable_if_literal 56% (34) 10% (6) 20% (12) 13% (8) 100% (60)
variable_if_template 50% (30) 20% (12) 10% (6) 20% (12) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 42% (42) 16% (16) 35% (35) 7% (7) 100% (100)
instance_reuse 26% (26) 5% (5) 11% (11) 58% (58) 100% (100)
uncached_disk 68% (68) 29% (29) 3% (3) 0% (0) 100% (100)
uncached_string 38% (38) 38% (38) 24% (24) 0% (0) 100% (100)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 57% (92) 18% (29) 13% (22) 10% (17) 100% (160)
mini-language 5% (4) 31% (25) 36% (29) 27% (22) 100% (80)
not-pure-perl 48% (39) 21% (17) 13% (11) 16% (13) 100% (80)
not-pure-perl,mini-language 48% (39) 21% (17) 13% (11) 16% (13) 100% (80)

Performance Drop-off Distribution by Feature

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

TeClevy, Text::Clevy (0.0002) in XS mode

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 22% (68) 8% (26) 28% (84) 40% (122) 100% (300)
instance_reuse 20% (60) 8% (24) 32% (96) 40% (120) 100% (300)
uncached_disk 77% (233) 21% (65) 0% (2) 0% (0) 100% (300)
uncached_string 89% (269) 10% (31) 0% (0) 0% (0) 100% (300)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (360) 1% (9) 5% (24) 18% (87) 100% (480)
mini-language 38% (92) 20% (49) 5% (12) 36% (87) 100% (240)
not-pure-perl 37% (89) 18% (44) 30% (73) 14% (34) 100% (240)
not-pure-perl,mini-language 37% (89) 18% (44) 30% (73) 14% (34) 100% (240)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 50% (203) 15% (61) 18% (72) 16% (64) 100% (400)
15 51% (205) 12% (49) 15% (60) 21% (86) 100% (400)
30 55% (222) 9% (36) 12% (50) 23% (92) 100% (400)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 58% (35) 5% (3) 10% (6) 26% (16) 100% (60)
array_loop_value 50% (30) 10% (6) 13% (8) 26% (16) 100% (60)
array_variable_value 45% (27) 18% (11) 20% (12) 16% (10) 100% (60)
complex_variable_expression 50% (30) 16% (10) 10% (6) 23% (14) 100% (60)
constant_expression 58% (35) 3% (2) 18% (11) 20% (12) 100% (60)
constant_if_else_literal 56% (34) 8% (5) 21% (13) 13% (8) 100% (60)
constant_if_else_template 38% (23) 21% (13) 20% (12) 20% (12) 100% (60)
constant_if_literal 55% (33) 11% (7) 13% (8) 20% (12) 100% (60)
constant_if_template 38% (23) 26% (16) 8% (5) 26% (16) 100% (60)
deep_data_structure_value 38% (23) 23% (14) 15% (9) 23% (14) 100% (60)
hash_variable_value 60% (36) 3% (2) 20% (12) 16% (10) 100% (60)
literal_text 73% (44) 1% (1) 11% (7) 13% (8) 100% (60)
records_loop_template 60% (36) 3% (2) 13% (8) 23% (14) 100% (60)
records_loop_value 55% (33) 8% (5) 13% (8) 23% (14) 100% (60)
scalar_variable 51% (31) 13% (8) 15% (9) 20% (12) 100% (60)
variable_expression 53% (32) 13% (8) 20% (12) 13% (8) 100% (60)
variable_if_else_literal 56% (34) 8% (5) 21% (13) 13% (8) 100% (60)
variable_if_else_template 36% (22) 26% (16) 13% (8) 23% (14) 100% (60)
variable_if_literal 55% (33) 15% (9) 13% (8) 16% (10) 100% (60)
variable_if_template 60% (36) 5% (3) 11% (7) 23% (14) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 44% (44) 13% (13) 30% (30) 13% (13) 100% (100)
instance_reuse 28% (28) 2% (2) 13% (13) 57% (57) 100% (100)
uncached_disk 70% (70) 27% (27) 3% (3) 0% (0) 100% (100)
uncached_string 38% (38) 38% (38) 24% (24) 0% (0) 100% (100)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 57% (92) 17% (28) 13% (21) 11% (19) 100% (160)
mini-language 5% (4) 32% (26) 33% (27) 28% (23) 100% (80)
not-pure-perl 52% (42) 16% (13) 13% (11) 17% (14) 100% (80)
not-pure-perl,mini-language 52% (42) 16% (13) 13% (11) 17% (14) 100% (80)

Performance Drop-off Distribution by Feature

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

TeMMHM, Text::MicroMason (2.12) 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) 3% (12) 11% (40) 65% (236) 100% (360)
uncached_disk 20% (72) 29% (105) 30% (111) 20% (72) 100% (360)
uncached_string 20% (72) 16% (60) 36% (132) 26% (96) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (216) 2% (10) 23% (100) 24% (106) 100% (432)
embedded-perl 0% (0) 32% (71) 27% (60) 39% (85) 100% (216)
pure-perl 0% (0) 11% (25) 29% (63) 59% (128) 100% (216)
pure-perl,embedded-perl 0% (0) 32% (71) 27% (60) 39% (85) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (72) 29% (105) 22% (81) 28% (102) 100% (360)
15 20% (72) 10% (37) 25% (91) 44% (160) 100% (360)
30 20% (72) 9% (35) 30% (111) 39% (142) 100% (360)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 47% (57) 36% (44) 15% (19) 0% (0) 100% (120)
uncached_disk 30% (36) 23% (28) 26% (32) 20% (24) 100% (120)
uncached_string 20% (24) 5% (6) 34% (41) 40% (49) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (73) 18% (26) 20% (30) 10% (15) 100% (144)
embedded-perl 29% (21) 27% (20) 20% (15) 22% (16) 100% (72)
pure-perl 2% (2) 16% (12) 44% (32) 36% (26) 100% (72)
pure-perl,embedded-perl 29% (21) 27% (20) 20% (15) 22% (16) 100% (72)

Performance Drop-off Distribution by Feature

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

TeMMTeTe, Text::MicroMason (2.12) 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) 23% (59) 49% (126) 7% (19) 100% (255)
uncached_disk 77% (198) 22% (57) 0% (0) 0% (0) 100% (255)
uncached_string 86% (221) 13% (34) 0% (0) 0% (0) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 58% (179) 30% (93) 10% (31) 0% (3) 100% (306)
embedded-perl 66% (102) 9% (14) 22% (35) 1% (2) 100% (153)
pure-perl 56% (87) 18% (29) 16% (25) 7% (12) 100% (153)
pure-perl,embedded-perl 66% (102) 9% (14) 22% (35) 1% (2) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 58% (148) 34% (88) 7% (19) 0% (0) 100% (255)
15 63% (161) 12% (31) 22% (57) 2% (6) 100% (255)
30 63% (161) 12% (31) 19% (50) 5% (13) 100% (255)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 60% (27) 17% (8) 11% (5) 11% (5) 100% (45)
array_variable_value 64% (29) 17% (8) 15% (7) 2% (1) 100% (45)
complex_variable_expression 57% (26) 15% (7) 26% (12) 0% (0) 100% (45)
constant_expression 55% (25) 26% (12) 17% (8) 0% (0) 100% (45)
constant_function 62% (28) 24% (11) 13% (6) 0% (0) 100% (45)
constant_if_else_literal 60% (27) 22% (10) 17% (8) 0% (0) 100% (45)
constant_if_literal 57% (26) 24% (11) 17% (8) 0% (0) 100% (45)
deep_data_structure_value 57% (26) 17% (8) 20% (9) 4% (2) 100% (45)
hash_loop_value 66% (30) 6% (3) 13% (6) 13% (6) 100% (45)
hash_variable_value 60% (27) 22% (10) 15% (7) 2% (1) 100% (45)
literal_text 73% (33) 26% (12) 0% (0) 0% (0) 100% (45)
records_loop_value 48% (22) 24% (11) 22% (10) 4% (2) 100% (45)
scalar_variable 64% (29) 17% (8) 17% (8) 0% (0) 100% (45)
variable_expression 57% (26) 24% (11) 17% (8) 0% (0) 100% (45)
variable_function 64% (29) 17% (8) 13% (6) 4% (2) 100% (45)
variable_if_else_literal 66% (30) 11% (5) 22% (10) 0% (0) 100% (45)
variable_if_literal 66% (30) 15% (7) 17% (8) 0% (0) 100% (45)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 22% (19) 3% (3) 15% (13) 58% (50) 100% (85)
uncached_disk 95% (81) 4% (4) 0% (0) 0% (0) 100% (85)
uncached_string 88% (75) 8% (7) 3% (3) 0% (0) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 79% (81) 4% (5) 4% (5) 10% (11) 100% (102)
embedded-perl 66% (34) 1% (1) 5% (3) 25% (13) 100% (51)
pure-perl 50% (26) 13% (7) 9% (5) 25% (13) 100% (51)
pure-perl,embedded-perl 66% (34) 1% (1) 5% (3) 25% (13) 100% (51)

Performance Drop-off Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_value 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
array_variable_value 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
complex_variable_expression 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
constant_expression 66% (10) 6% (1) 26% (4) 0% (0) 100% (15)
constant_function 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
constant_if_else_literal 73% (11) 0% (0) 26% (4) 0% (0) 100% (15)
constant_if_literal 73% (11) 6% (1) 20% (3) 0% (0) 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 66% (10) 6% (1) 0% (0) 26% (4) 100% (15)
literal_text 86% (13) 13% (2) 0% (0) 0% (0) 100% (15)
records_loop_value 46% (7) 20% (3) 6% (1) 26% (4) 100% (15)
scalar_variable 73% (11) 0% (0) 0% (0) 26% (4) 100% (15)
variable_expression 73% (11) 0% (0) 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) 6% (1) 20% (3) 100% (15)
variable_if_literal 73% (11) 0% (0) 6% (1) 20% (3) 100% (15)

TeMT, Text::MicroTemplate (0.18)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 20% (72) 8% (30) 39% (143) 31% (115) 100% (360)
memory_cache 57% (208) 25% (90) 12% (46) 4% (16) 100% (360)
uncached_disk 20% (72) 3% (13) 35% (128) 40% (147) 100% (360)
uncached_string 21% (77) 16% (58) 46% (167) 16% (58) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 60% (348) 2% (17) 25% (144) 11% (67) 100% (576)
embedded-perl 3% (10) 25% (74) 47% (138) 22% (66) 100% (288)
pure-perl 21% (61) 9% (26) 22% (64) 47% (137) 100% (288)
pure-perl,embedded-perl 3% (10) 25% (74) 47% (138) 22% (66) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 25% (122) 9% (46) 35% (170) 29% (142) 100% (480)
15 29% (143) 15% (75) 34% (167) 19% (95) 100% (480)
30 34% (164) 14% (70) 30% (147) 20% (99) 100% (480)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 23% (14) 13% (8) 15% (9) 48% (29) 100% (60)
array_loop_value 26% (16) 10% (6) 35% (21) 28% (17) 100% (60)
array_variable_value 26% (16) 21% (13) 30% (18) 21% (13) 100% (60)
complex_variable_expression 30% (18) 13% (8) 41% (25) 15% (9) 100% (60)
constant_expression 26% (16) 16% (10) 30% (18) 26% (16) 100% (60)
constant_function 26% (16) 13% (8) 36% (22) 23% (14) 100% (60)
constant_if_else_literal 30% (18) 3% (2) 38% (23) 28% (17) 100% (60)
constant_if_else_template 33% (20) 16% (10) 31% (19) 18% (11) 100% (60)
constant_if_literal 30% (18) 11% (7) 28% (17) 30% (18) 100% (60)
constant_if_template 33% (20) 13% (8) 28% (17) 25% (15) 100% (60)
deep_data_structure_value 26% (16) 10% (6) 35% (21) 28% (17) 100% (60)
hash_loop_template 30% (18) 10% (6) 20% (12) 40% (24) 100% (60)
hash_loop_value 30% (18) 13% (8) 40% (24) 16% (10) 100% (60)
hash_variable_value 26% (16) 16% (10) 35% (21) 21% (13) 100% (60)
literal_text 38% (23) 21% (13) 25% (15) 15% (9) 100% (60)
records_loop_template 33% (20) 6% (4) 23% (14) 36% (22) 100% (60)
records_loop_value 30% (18) 10% (6) 40% (24) 20% (12) 100% (60)
scalar_variable 30% (18) 18% (11) 40% (24) 11% (7) 100% (60)
variable_expression 26% (16) 16% (10) 35% (21) 21% (13) 100% (60)
variable_function 26% (16) 13% (8) 35% (21) 25% (15) 100% (60)
variable_if_else_literal 33% (20) 1% (1) 48% (29) 16% (10) 100% (60)
variable_if_else_template 33% (20) 16% (10) 36% (22) 13% (8) 100% (60)
variable_if_literal 30% (18) 15% (9) 40% (24) 15% (9) 100% (60)
variable_if_template 33% (20) 15% (9) 38% (23) 13% (8) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 21% (26) 23% (28) 46% (56) 8% (10) 100% (120)
memory_cache 93% (112) 0% (0) 6% (8) 0% (0) 100% (120)
uncached_disk 65% (78) 33% (40) 1% (2) 0% (0) 100% (120)
uncached_string 62% (75) 26% (32) 10% (13) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 63% (122) 21% (41) 14% (28) 0% (1) 100% (192)
embedded-perl 76% (73) 11% (11) 11% (11) 1% (1) 100% (96)
pure-perl 23% (23) 38% (37) 30% (29) 7% (7) 100% (96)
pure-perl,embedded-perl 76% (73) 11% (11) 11% (11) 1% (1) 100% (96)

Performance Drop-off Distribution by Feature

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

TeMTE, Text::MicroTemplate::Extended (0.11)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 55% (198) 27% (98) 17% (64) 0% (0) 100% (360)
uncached_disk 20% (72) 12% (44) 56% (203) 11% (41) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 71% (205) 4% (13) 19% (56) 4% (14) 100% (288)
embedded-perl 1% (2) 40% (58) 56% (81) 2% (3) 100% (144)
pure-perl 42% (61) 9% (13) 34% (49) 14% (21) 100% (144)
pure-perl,embedded-perl 1% (2) 40% (58) 56% (81) 2% (3) 100% (144)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 40% (96) 20% (48) 33% (80) 6% (16) 100% (240)
15 34% (82) 19% (46) 42% (103) 3% (9) 100% (240)
30 38% (92) 20% (48) 35% (84) 6% (16) 100% (240)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
memory_cache 60% (72) 30% (36) 10% (12) 0% (0) 100% (120)
uncached_disk 49% (59) 34% (41) 15% (19) 0% (1) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 69% (67) 16% (16) 13% (13) 0% (0) 100% (96)
embedded-perl 47% (23) 45% (22) 6% (3) 0% (0) 100% (48)
pure-perl 37% (18) 35% (17) 25% (12) 2% (1) 100% (48)
pure-perl,embedded-perl 47% (23) 45% (22) 6% (3) 0% (0) 100% (48)

Performance Drop-off Distribution by Feature

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

TeTe, Text::Template (1.45)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 92% (237) 6% (16) 0% (2) 0% (0) 100% (255)
uncached_disk 20% (51) 2% (7) 30% (77) 47% (120) 100% (255)
uncached_string 20% (53) 5% (13) 30% (78) 43% (111) 100% (255)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 64% (198) 1% (6) 14% (44) 18% (58) 100% (306)
embedded-perl 32% (50) 5% (8) 26% (40) 35% (55) 100% (153)
pure-perl 28% (43) 9% (14) 21% (33) 41% (63) 100% (153)
pure-perl,embedded-perl 32% (50) 5% (8) 26% (40) 35% (55) 100% (153)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 46% (119) 1% (4) 43% (112) 7% (20) 100% (255)
15 43% (110) 6% (16) 9% (23) 41% (106) 100% (255)
30 43% (112) 6% (16) 8% (22) 41% (105) 100% (255)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
instance_reuse 52% (45) 20% (17) 21% (18) 5% (5) 100% (85)
uncached_disk 22% (19) 9% (8) 36% (31) 31% (27) 100% (85)
uncached_string 24% (21) 20% (17) 44% (38) 10% (9) 100% (85)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 52% (54) 13% (14) 23% (24) 9% (10) 100% (102)
embedded-perl 27% (14) 19% (10) 41% (21) 11% (6) 100% (51)
pure-perl 5% (3) 15% (8) 41% (21) 37% (19) 100% (51)
pure-perl,embedded-perl 27% (14) 19% (10) 41% (21) 11% (6) 100% (51)

Performance Drop-off Distribution by Feature

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

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

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 34% (124) 56% (205) 4% (15) 4% (16) 100% (360)
memory_cache 28% (104) 17% (62) 9% (34) 44% (160) 100% (360)
uncached_disk 53% (192) 36% (132) 8% (30) 1% (6) 100% (360)
uncached_string 51% (186) 33% (122) 12% (44) 2% (8) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 57% (332) 26% (155) 10% (63) 4% (26) 100% (576)
embedded-perl 40% (117) 34% (98) 2% (8) 22% (65) 100% (288)
pure-perl 13% (40) 59% (170) 15% (44) 11% (34) 100% (288)
pure-perl,embedded-perl 40% (117) 34% (98) 2% (8) 22% (65) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 50% (240) 40% (196) 3% (16) 5% (28) 100% (480)
15 40% (192) 33% (163) 10% (49) 15% (76) 100% (480)
30 36% (174) 33% (162) 12% (58) 17% (86) 100% (480)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 33% (20) 36% (22) 10% (6) 20% (12) 100% (60)
array_loop_value 33% (20) 36% (22) 10% (6) 20% (12) 100% (60)
array_variable_value 45% (27) 31% (19) 13% (8) 10% (6) 100% (60)
complex_variable_expression 28% (17) 31% (19) 23% (14) 16% (10) 100% (60)
constant_expression 46% (28) 40% (24) 6% (4) 6% (4) 100% (60)
constant_function 40% (24) 40% (24) 13% (8) 6% (4) 100% (60)
constant_if_else_literal 50% (30) 36% (22) 3% (2) 10% (6) 100% (60)
constant_if_else_template 48% (29) 35% (21) 6% (4) 10% (6) 100% (60)
constant_if_literal 53% (32) 36% (22) 3% (2) 6% (4) 100% (60)
constant_if_template 48% (29) 38% (23) 3% (2) 10% (6) 100% (60)
deep_data_structure_value 33% (20) 40% (24) 16% (10) 10% (6) 100% (60)
hash_loop_template 36% (22) 33% (20) 6% (4) 23% (14) 100% (60)
hash_loop_value 36% (22) 33% (20) 6% (4) 23% (14) 100% (60)
hash_variable_value 43% (26) 40% (24) 10% (6) 6% (4) 100% (60)
literal_text 38% (23) 25% (15) 3% (2) 33% (20) 100% (60)
records_loop_template 40% (24) 23% (14) 16% (10) 20% (12) 100% (60)
records_loop_value 40% (24) 23% (14) 16% (10) 20% (12) 100% (60)
scalar_variable 56% (34) 36% (22) 0% (0) 6% (4) 100% (60)
variable_expression 33% (20) 41% (25) 15% (9) 10% (6) 100% (60)
variable_function 36% (22) 36% (22) 16% (10) 10% (6) 100% (60)
variable_if_else_literal 46% (28) 43% (26) 0% (0) 10% (6) 100% (60)
variable_if_else_template 48% (29) 41% (25) 0% (0) 10% (6) 100% (60)
variable_if_literal 45% (27) 45% (27) 3% (2) 6% (4) 100% (60)
variable_if_template 48% (29) 41% (25) 0% (0) 10% (6) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 40% (49) 24% (29) 13% (16) 21% (26) 100% (120)
memory_cache 21% (26) 0% (0) 16% (20) 61% (74) 100% (120)
uncached_disk 26% (32) 10% (13) 53% (64) 9% (11) 100% (120)
uncached_string 28% (34) 33% (40) 31% (38) 6% (8) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (97) 8% (16) 21% (42) 19% (37) 100% (192)
embedded-perl 21% (21) 31% (30) 26% (25) 20% (20) 100% (96)
pure-perl 2% (2) 6% (6) 47% (46) 43% (42) 100% (96)
pure-perl,embedded-perl 21% (21) 31% (30) 26% (25) 20% (20) 100% (96)

Performance Drop-off Distribution by Feature

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

TeTemplet, Text::Templet (3.0)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_string 23% (86) 7% (28) 24% (88) 43% (158) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (72) 0% (0) 22% (32) 27% (40) 100% (144)
embedded-perl 9% (7) 15% (11) 23% (17) 51% (37) 100% (72)
pure-perl 0% (0) 8% (6) 30% (22) 61% (44) 100% (72)
pure-perl,embedded-perl 9% (7) 15% (11) 23% (17) 51% (37) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (24) 0% (0) 5% (6) 75% (90) 100% (120)
15 25% (30) 12% (15) 33% (40) 29% (35) 100% (120)
30 26% (32) 10% (13) 35% (42) 27% (33) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 46% (7) 0% (0) 26% (4) 26% (4) 100% (15)
array_loop_value 46% (7) 13% (2) 26% (4) 13% (2) 100% (15)
array_variable_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
complex_variable_expression 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
constant_expression 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
constant_function 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
constant_if_else_literal 20% (3) 40% (6) 13% (2) 26% (4) 100% (15)
constant_if_else_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
constant_if_literal 20% (3) 0% (0) 53% (8) 26% (4) 100% (15)
constant_if_template 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_loop_template 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
hash_loop_value 33% (5) 13% (2) 40% (6) 13% (2) 100% (15)
hash_variable_value 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
literal_text 20% (3) 0% (0) 46% (7) 33% (5) 100% (15)
records_loop_template 20% (3) 26% (4) 13% (2) 40% (6) 100% (15)
records_loop_value 20% (3) 26% (4) 40% (6) 13% (2) 100% (15)
scalar_variable 20% (3) 0% (0) 0% (0) 80% (12) 100% (15)
variable_expression 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_function 33% (5) 13% (2) 26% (4) 26% (4) 100% (15)
variable_if_else_literal 20% (3) 40% (6) 13% (2) 26% (4) 100% (15)
variable_if_else_template 20% (3) 0% (0) 26% (4) 53% (8) 100% (15)
variable_if_literal 20% (3) 0% (0) 53% (8) 26% (4) 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
uncached_string 82% (99) 4% (5) 1% (2) 11% (14) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 89% (43) 2% (1) 0% (0) 8% (4) 100% (48)
embedded-perl 79% (19) 4% (1) 4% (1) 12% (3) 100% (24)
pure-perl 75% (18) 8% (2) 0% (0) 16% (4) 100% (24)
pure-perl,embedded-perl 79% (19) 4% (1) 4% (1) 12% (3) 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 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
complex_variable_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_function 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_else_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_literal 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
constant_if_template 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
deep_data_structure_value 20% (1) 0% (0) 40% (2) 40% (2) 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 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
literal_text 20% (1) 80% (4) 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 20% (1) 0% (0) 0% (0) 80% (4) 100% (5)
variable_expression 100% (5) 0% (0) 0% (0) 0% (0) 100% (5)
variable_function 80% (4) 20% (1) 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)

TeTmpl, Text::Tmpl (0.33)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 20% (36) 0% (0) 30% (55) 49% (89) 100% (180)
uncached_string 20% (36) 1% (3) 31% (57) 46% (84) 100% (180)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 50% (72) 0% (0) 5% (8) 44% (64) 100% (144)
mini-language 0% (0) 4% (3) 11% (8) 84% (61) 100% (72)
not-pure-perl 0% (0) 0% (0) 66% (48) 33% (24) 100% (72)
not-pure-perl,mini-language 0% (0) 0% (0) 66% (48) 33% (24) 100% (72)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 20% (24) 2% (3) 40% (48) 37% (45) 100% (120)
15 20% (24) 0% (0) 26% (32) 53% (64) 100% (120)
30 20% (24) 0% (0) 26% (32) 53% (64) 100% (120)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
array_loop_value 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
hash_loop_template 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
hash_loop_value 20% (6) 0% (0) 0% (0) 80% (24) 100% (30)
literal_text 20% (6) 3% (1) 50% (15) 26% (8) 100% (30)
records_loop_template 20% (6) 0% (0) 40% (12) 40% (12) 100% (30)
records_loop_value 20% (6) 0% (0) 40% (12) 40% (12) 100% (30)
scalar_variable 20% (6) 3% (1) 50% (15) 26% (8) 100% (30)
variable_if_else_literal 20% (6) 0% (0) 50% (15) 30% (9) 100% (30)
variable_if_else_template 20% (6) 0% (0) 46% (14) 33% (10) 100% (30)
variable_if_literal 20% (6) 3% (1) 46% (14) 30% (9) 100% (30)
variable_if_template 20% (6) 0% (0) 50% (15) 30% (9) 100% (30)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
uncached_disk 20% (12) 0% (0) 3% (2) 76% (46) 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) 8% (2) 91% (22) 100% (24)
not-pure-perl 0% (0) 0% (0) 0% (0) 100% (24) 100% (24)
not-pure-perl,mini-language 0% (0) 0% (0) 0% (0) 100% (24) 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 20% (2) 0% (0) 10% (1) 70% (7) 100% (10)
hash_loop_value 20% (2) 0% (0) 10% (1) 70% (7) 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) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_else_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_else_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_literal 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)
variable_if_template 20% (2) 0% (0) 0% (0) 80% (8) 100% (10)

TeXs, Text::Xslate (0.2012)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (72) 1% (4) 6% (23) 72% (261) 100% (360)
instance_reuse 20% (72) 0% (0) 0% (2) 79% (286) 100% (360)
uncached_disk 40% (145) 38% (137) 21% (78) 0% (0) 100% (360)
uncached_string 57% (208) 42% (152) 0% (0) 0% (0) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 70% (406) 4% (28) 2% (12) 22% (130) 100% (576)
mini-language 14% (41) 30% (89) 10% (29) 44% (129) 100% (288)
not-pure-perl 8% (25) 30% (88) 10% (31) 50% (144) 100% (288)
not-pure-perl,mini-language 8% (25) 30% (88) 10% (31) 50% (144) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 32% (155) 22% (106) 8% (42) 36% (177) 100% (480)
15 34% (164) 20% (96) 7% (35) 38% (185) 100% (480)
30 37% (178) 18% (91) 5% (26) 38% (185) 100% (480)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 28% (17) 21% (13) 10% (6) 40% (24) 100% (60)
array_loop_value 28% (17) 21% (13) 10% (6) 40% (24) 100% (60)
array_variable_value 26% (16) 23% (14) 10% (6) 40% (24) 100% (60)
complex_variable_expression 26% (16) 20% (12) 13% (8) 40% (24) 100% (60)
constant_expression 26% (16) 20% (12) 15% (9) 38% (23) 100% (60)
constant_function 30% (18) 36% (22) 3% (2) 30% (18) 100% (60)
constant_if_else_literal 25% (15) 25% (15) 13% (8) 36% (22) 100% (60)
constant_if_else_template 46% (28) 10% (6) 3% (2) 40% (24) 100% (60)
constant_if_literal 25% (15) 21% (13) 16% (10) 36% (22) 100% (60)
constant_if_template 25% (15) 21% (13) 13% (8) 40% (24) 100% (60)
deep_data_structure_value 30% (18) 20% (12) 10% (6) 40% (24) 100% (60)
hash_loop_template 56% (34) 3% (2) 0% (0) 40% (24) 100% (60)
hash_loop_value 56% (34) 3% (2) 0% (0) 40% (24) 100% (60)
hash_variable_value 30% (18) 20% (12) 10% (6) 40% (24) 100% (60)
literal_text 30% (18) 30% (18) 10% (6) 30% (18) 100% (60)
records_loop_template 40% (24) 20% (12) 0% (0) 40% (24) 100% (60)
records_loop_value 40% (24) 20% (12) 0% (0) 40% (24) 100% (60)
scalar_variable 33% (20) 26% (16) 1% (1) 38% (23) 100% (60)
variable_expression 26% (16) 20% (12) 13% (8) 40% (24) 100% (60)
variable_function 40% (24) 20% (12) 10% (6) 30% (18) 100% (60)
variable_if_else_literal 35% (21) 25% (15) 3% (2) 36% (22) 100% (60)
variable_if_else_template 51% (31) 8% (5) 0% (0) 40% (24) 100% (60)
variable_if_literal 35% (21) 25% (15) 3% (2) 36% (22) 100% (60)
variable_if_template 35% (21) 25% (15) 1% (1) 38% (23) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 41% (50) 31% (38) 8% (10) 18% (22) 100% (120)
instance_reuse 25% (30) 25% (31) 25% (31) 23% (28) 100% (120)
uncached_disk 96% (116) 3% (4) 0% (0) 0% (0) 100% (120)
uncached_string 63% (76) 31% (38) 5% (6) 0% (0) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 67% (129) 16% (32) 8% (17) 7% (14) 100% (192)
mini-language 28% (27) 30% (29) 20% (20) 20% (20) 100% (96)
not-pure-perl 60% (58) 26% (25) 5% (5) 8% (8) 100% (96)
not-pure-perl,mini-language 60% (58) 26% (25) 5% (5) 8% (8) 100% (96)

Performance Drop-off Distribution by Feature

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

TeXsPP, Text::Xslate::PP (0.2012)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 80% (288) 18% (67) 1% (5) 0% (0) 100% (360)
instance_reuse 21% (76) 1% (5) 42% (152) 35% (127) 100% (360)
uncached_disk 89% (323) 10% (37) 0% (0) 0% (0) 100% (360)
uncached_string 98% (356) 1% (4) 0% (0) 0% (0) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 83% (480) 4% (24) 12% (70) 0% (2) 100% (576)
mini-language 63% (182) 12% (35) 22% (64) 2% (7) 100% (288)
pure-perl 67% (193) 8% (24) 7% (23) 16% (48) 100% (288)
pure-perl,mini-language 65% (188) 10% (30) 0% (0) 24% (70) 100% (288)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 69% (335) 10% (50) 9% (47) 10% (48) 100% (480)
15 73% (355) 6% (33) 10% (52) 8% (40) 100% (480)
30 73% (353) 6% (30) 12% (58) 8% (39) 100% (480)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 65% (39) 15% (9) 11% (7) 8% (5) 100% (60)
array_loop_value 61% (37) 18% (11) 13% (8) 6% (4) 100% (60)
array_variable_value 80% (48) 0% (0) 13% (8) 6% (4) 100% (60)
complex_variable_expression 71% (43) 8% (5) 10% (6) 10% (6) 100% (60)
constant_expression 70% (42) 10% (6) 10% (6) 10% (6) 100% (60)
constant_function 80% (48) 15% (9) 3% (2) 1% (1) 100% (60)
constant_if_else_literal 58% (35) 16% (10) 13% (8) 11% (7) 100% (60)
constant_if_else_template 75% (45) 5% (3) 10% (6) 10% (6) 100% (60)
constant_if_literal 48% (29) 28% (17) 13% (8) 10% (6) 100% (60)
constant_if_template 75% (45) 5% (3) 10% (6) 10% (6) 100% (60)
deep_data_structure_value 80% (48) 0% (0) 15% (9) 5% (3) 100% (60)
hash_loop_template 76% (46) 3% (2) 8% (5) 11% (7) 100% (60)
hash_loop_value 76% (46) 3% (2) 6% (4) 13% (8) 100% (60)
hash_variable_value 75% (45) 5% (3) 11% (7) 8% (5) 100% (60)
literal_text 60% (36) 20% (12) 13% (8) 6% (4) 100% (60)
records_loop_template 80% (48) 0% (0) 13% (8) 6% (4) 100% (60)
records_loop_value 80% (48) 0% (0) 13% (8) 6% (4) 100% (60)
scalar_variable 73% (44) 6% (4) 10% (6) 10% (6) 100% (60)
variable_expression 70% (42) 10% (6) 10% (6) 10% (6) 100% (60)
variable_function 76% (46) 3% (2) 11% (7) 8% (5) 100% (60)
variable_if_else_literal 75% (45) 5% (3) 10% (6) 10% (6) 100% (60)
variable_if_else_template 80% (48) 0% (0) 10% (6) 10% (6) 100% (60)
variable_if_literal 73% (44) 6% (4) 10% (6) 10% (6) 100% (60)
variable_if_template 76% (46) 3% (2) 10% (6) 10% (6) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 62% (75) 25% (31) 6% (8) 5% (6) 100% (120)
instance_reuse 24% (29) 23% (28) 24% (29) 28% (34) 100% (120)
uncached_disk 76% (92) 17% (21) 2% (3) 3% (4) 100% (120)
uncached_string 33% (40) 36% (44) 15% (18) 15% (18) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 75% (144) 17% (33) 4% (9) 3% (6) 100% (192)
mini-language 40% (39) 35% (34) 19% (19) 4% (4) 100% (96)
pure-perl 36% (35) 35% (34) 14% (14) 13% (13) 100% (96)
pure-perl,mini-language 18% (18) 23% (23) 16% (16) 40% (39) 100% (96)

Performance Drop-off Distribution by Feature

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

TeXsTT, Text::Xslate (0.2012) in Template::Toolkit mode

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 42% (139) 47% (158) 6% (21) 3% (12) 100% (330)
instance_reuse 20% (66) 2% (7) 3% (10) 74% (247) 100% (330)
uncached_disk 81% (268) 16% (56) 1% (6) 0% (0) 100% (330)
uncached_string 91% (302) 8% (28) 0% (0) 0% (0) 100% (330)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 77% (408) 7% (38) 2% (14) 12% (68) 100% (528)
mini-language 47% (125) 22% (59) 3% (9) 26% (71) 100% (264)
not-pure-perl 45% (121) 28% (76) 2% (7) 22% (60) 100% (264)
not-pure-perl,mini-language 45% (121) 28% (76) 2% (7) 22% (60) 100% (264)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 72% (320) 7% (34) 0% (3) 18% (83) 100% (440)
15 56% (247) 21% (93) 2% (12) 20% (88) 100% (440)
30 47% (208) 27% (122) 5% (22) 20% (88) 100% (440)

Performance Distribution by Feature

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
array_loop_template 40% (24) 28% (17) 8% (5) 23% (14) 100% (60)
array_loop_value 40% (24) 28% (17) 8% (5) 23% (14) 100% (60)
array_variable_value 56% (34) 23% (14) 0% (0) 20% (12) 100% (60)
complex_variable_expression 56% (34) 16% (10) 6% (4) 20% (12) 100% (60)
constant_expression 51% (31) 28% (17) 0% (0) 20% (12) 100% (60)
constant_function 73% (44) 18% (11) 6% (4) 1% (1) 100% (60)
constant_if_else_literal 55% (33) 25% (15) 0% (0) 20% (12) 100% (60)
constant_if_else_template 65% (39) 11% (7) 3% (2) 20% (12) 100% (60)
constant_if_literal 61% (37) 18% (11) 0% (0) 20% (12) 100% (60)
constant_if_template 65% (39) 15% (9) 0% (0) 20% (12) 100% (60)
deep_data_structure_value 63% (38) 11% (7) 5% (3) 20% (12) 100% (60)
hash_variable_value 65% (39) 11% (7) 3% (2) 20% (12) 100% (60)
literal_text 60% (36) 13% (8) 6% (4) 20% (12) 100% (60)
records_loop_template 46% (28) 26% (16) 0% (0) 26% (16) 100% (60)
records_loop_value 46% (28) 26% (16) 0% (0) 26% (16) 100% (60)
scalar_variable 65% (39) 15% (9) 0% (0) 20% (12) 100% (60)
variable_expression 60% (36) 20% (12) 0% (0) 20% (12) 100% (60)
variable_function 68% (41) 11% (7) 10% (6) 10% (6) 100% (60)
variable_if_else_literal 56% (34) 23% (14) 0% (0) 20% (12) 100% (60)
variable_if_else_template 66% (40) 13% (8) 0% (0) 20% (12) 100% (60)
variable_if_literal 61% (37) 18% (11) 0% (0) 20% (12) 100% (60)
variable_if_template 66% (40) 10% (6) 3% (2) 20% (12) 100% (60)

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (23) 3% (4) 3% (4) 71% (79) 100% (110)
instance_reuse 25% (28) 29% (32) 32% (36) 12% (14) 100% (110)
uncached_disk 20% (23) 21% (24) 50% (56) 6% (7) 100% (110)
uncached_string 20% (22) 5% (6) 36% (40) 38% (42) 100% (110)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 51% (90) 4% (8) 18% (32) 26% (46) 100% (176)
mini-language 2% (2) 4% (4) 38% (34) 54% (48) 100% (88)
not-pure-perl 2% (2) 30% (27) 39% (35) 27% (24) 100% (88)
not-pure-perl,mini-language 2% (2) 30% (27) 39% (35) 27% (24) 100% (88)

Performance Drop-off Distribution by Feature

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

Tenj, Tenjin (0.062)

Performance Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 20% (72) 2% (9) 10% (37) 67% (242) 100% (360)
instance_reuse 53% (192) 34% (125) 11% (43) 0% (0) 100% (360)
uncached_disk 20% (72) 0% (0) 11% (43) 68% (245) 100% (360)

Performance Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 58% (253) 5% (25) 10% (45) 25% (109) 100% (432)
embedded-perl 12% (26) 21% (46) 5% (12) 61% (132) 100% (216)
pure-perl 14% (31) 7% (17) 25% (54) 52% (114) 100% (216)
pure-perl,embedded-perl 12% (26) 21% (46) 5% (12) 61% (132) 100% (216)

Performance Distribution by Repeats

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
1 33% (122) 11% (42) 10% (38) 43% (158) 100% (360)
15 30% (110) 12% (44) 11% (40) 46% (166) 100% (360)
30 28% (104) 13% (48) 12% (45) 45% (163) 100% (360)

Performance Distribution by Feature

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

Performance Drop-off Distribution by Cache Type

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
disk_cache 41% (50) 22% (27) 6% (8) 29% (35) 100% (120)
instance_reuse 31% (38) 20% (25) 34% (41) 13% (16) 100% (120)
uncached_disk 39% (47) 22% (27) 5% (6) 33% (40) 100% (120)

Performance Drop-off Distribution by Comparable Engines

Lowest Quartile Low Quartile High Quartile Highest Quartile Total
all 53% (77) 13% (20) 11% (17) 20% (30) 100% (144)
embedded-perl 38% (28) 27% (20) 18% (13) 15% (11) 100% (72)
pure-perl 2% (2) 26% (19) 16% (12) 54% (39) 100% (72)
pure-perl,embedded-perl 38% (28) 27% (20) 18% (13) 15% (11) 100% (72)

Performance Drop-off Distribution by Feature

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