You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf: four benchmarks remain 1.4-2.2x Node with no owning issue (pipeline, churn, tree_wide, cycles) #8289
The 2026-08-17 four-engine sweep leaves four rows where Perry is meaningfully behind Node and no issue owns them. interp/iso_miss are #8202 and fib40 is #8175; these are the remainder.
benchmark
Perry
Node
P/Node
Perry instr
Node instr
pipeline
0.2043
0.0950
2.15×
3.893 B
1.220 B
churn
0.3300
0.1666
1.98×
5.006 B
2.681 B
tree_wide
1.2965
0.9015
1.44×
26.808 B
20.262 B
cycles
0.1035
0.0736
1.41×
2.132 B
0.669 B
All four are instruction-bound rather than scheduling-bound — Perry executes 1.3–3.2× the instructions Node does — so the work is to emit less, not to schedule better.
cycles has the largest instruction ratio of the four at 3.19× Node for 1.41× wall, which suggests the emitted work is cheap per instruction. Possibly the most tractable.
tree_wide is the mildest ratio but the largest absolute time in the corpus at 1.30 s.
Not a regression report — all four improved or held since 08-15 (tree_wide −24.8%, cycles +1.4%, pipeline +2.0%, churn +8.2% from #8288). Filed so the remaining engine gap is tracked rather than implicit, now that the campaign has cleared the catastrophic rows.
Suggested order: #8288 first (it contaminates churn), then cycles as the cheapest probe into where the extra instructions come from, then pipeline.
Progress: #8301 has merged. On the checked-in cycles reproducer, memoizing typed layouts by immutable ShapeId reduced the five-run median from 2.177B to 1.804B retired instructions (-17.1%) with unchanged output.
Keeping this umbrella issue open: pipeline, churn, and tree_wide remain, and cycles still needs a clean four-engine re-sweep to establish its new wall-time and Node ratios.
Progress: #8351 has merged. On the checked-in pipeline reproducer, the four-entry polymorphic closure-dispatch cache reduced the seven-run median from 3.526B to 3.412B retired instructions (-3.23%) with unchanged output.
Keeping this umbrella issue open: churn and tree_wide still have no merged owning fix, and cycles still needs the clean four-engine re-sweep noted above.
All four rows are now within 1.3x of Node — closing
Re-measured on the 2026-08-18 four-engine sweep at 1b61941bc (102 commits past the 14468dcbc sweep this issue was filed against). Same corpus, same protocol, verdict CLEAN.
row
when filed
2026-08-17
2026-08-18
Perry seconds
pipeline
2.15x
2.15x
1.27x
0.2043 -> 0.1222 (-40.2%)
churn
1.98x
1.98x
1.18x
0.3300 -> 0.1989 (-39.7%)
tree_wide
1.44x
1.44x
0.46x
1.2965 -> 0.4189 (-67.7%)
cycles
1.41x
1.41x
1.04x
0.1035 -> 0.0790 (-23.6%)
tree_wide no longer just clears the bar, it beats Node outright — and does it on
60.6 MiB peak RSS against Node's 641.9 MiB, retiring 7.61 G instructions against 20.28 G.
Sweep-wide, this moved Perry past Node overall for the first time: geomean Perry/Node
0.804x (was 1.076x), 12/19 cells beating Node, 16/19 within 1.3x.
The four rows named here no longer need an owning issue. The one cell that went the
other way in this window is asyncpipe (+55.6%), which is tracked separately as #8384
rather than folded in here, since it is a regression rather than an unclosed gap.
Full sweep: gc-handoff/current-sweep-2026-08-18-RESULTS.md.
Activity
proggeramlug commentedon Aug 17, 2026
Progress: #8301 has merged. On the checked-in
cyclesreproducer, memoizing typed layouts by immutableShapeIdreduced the five-run median from 2.177B to 1.804B retired instructions (-17.1%) with unchanged output.Keeping this umbrella issue open:
pipeline,churn, andtree_wideremain, andcyclesstill needs a clean four-engine re-sweep to establish its new wall-time and Node ratios.proggeramlug commentedon Aug 18, 2026
Progress: #8351 has merged. On the checked-in
pipelinereproducer, the four-entry polymorphic closure-dispatch cache reduced the seven-run median from 3.526B to 3.412B retired instructions (-3.23%) with unchanged output.Keeping this umbrella issue open:
churnandtree_widestill have no merged owning fix, andcyclesstill needs the clean four-engine re-sweep noted above.proggeramlug commentedon Aug 18, 2026
All four rows are now within 1.3x of Node — closing
Re-measured on the 2026-08-18 four-engine sweep at
1b61941bc(102 commits past the14468dcbcsweep this issue was filed against). Same corpus, same protocol, verdictCLEAN.pipelinechurntree_widecyclestree_wideno longer just clears the bar, it beats Node outright — and does it on60.6 MiB peak RSS against Node's 641.9 MiB, retiring 7.61 G instructions against 20.28 G.
Sweep-wide, this moved Perry past Node overall for the first time: geomean Perry/Node
0.804x (was 1.076x), 12/19 cells beating Node, 16/19 within 1.3x.
The four rows named here no longer need an owning issue. The one cell that went the
other way in this window is
asyncpipe(+55.6%), which is tracked separately as #8384rather than folded in here, since it is a regression rather than an unclosed gap.
Full sweep:
gc-handoff/current-sweep-2026-08-18-RESULTS.md.