@@ -241,10 +241,10 @@ new incremental experiment, use the latest accepted branch tip as the control.
241241
242242Fresh five-run ` perf stat ` means at the start of the focused pass:
243243
244- | pair | post-exp22 instructions | latest accepted after exp45 | cumulative change |
244+ | pair | post-exp22 instructions | latest accepted after exp46 | cumulative change |
245245| --- | ---: | ---: | ---: |
246- | ` typing ` | 3,115,140,742 | 2,754,519,861 | ** -11.58 %** |
247- | ` slow ` | 1,881,539,982 | 514,830,042 | ** -72.64 %** |
246+ | ` typing ` | 3,115,140,742 | 2,743,556,655 | ** -11.93 %** |
247+ | ` slow ` | 1,881,539,982 | 514,223,778 | ** -72.67 %** |
248248
249249The original focused callgrind files were ` /tmp/cg-focused-typing.out ` and
250250` /tmp/cg-focused-slow.out ` ; sampled cycle profiles were
@@ -362,6 +362,7 @@ than mixing counts across environments.
362362| 43 | reserve matched-position capacity from syntax-node count | flat on both focused pairs | rejected |
363363| 44 | reuse one slider-region scratch vector across both passes | flat on both focused pairs | rejected |
364364| 45 | replace hashed ` ChangeMap ` with dense syntax-ID indexing | -1.20% ` typing ` , -0.27% ` slow ` ; ` typing ` RSS -4.5% | kept |
365+ | 46 | replace hashed content-ID counts with a dense vector | -0.40% ` typing ` , -0.12% ` slow ` | kept |
365366
366367Every completed experiment is committed and pushed. ` results/ ` holds labelled
367368callgrind tables through ` exp13-linear-visible-width ` ; experiments that only
@@ -370,8 +371,8 @@ affect inline, JSON, or synthetic/very-large shapes use repeated targeted
370371` huge_cpp ` pair from 14.86B to 9.29B instructions (** -37.5%** ), and exp22 also
371372reduced its peak RSS from 696 MB to 491 MB. If the compiler, dependencies,
372373profiler, or machine changed, record a fresh control binary before comparing.
373- The focused exp23-45 pass reduced ` typing ` from 3.115B to 2.755B (** -11.58 %** )
374- and ` slow ` from 1.882B to 0.515B (** -72.64 %** ). Exp35's similar-list pairing and
374+ The focused exp23-46 pass reduced ` typing ` from 3.115B to 2.744B (** -11.93 %** )
375+ and ` slow ` from 1.882B to 0.514B (** -72.67 %** ). Exp35's similar-list pairing and
375376exp39's lower decomposition gate are responsible for most of that improvement.
376377
377378## Research synthesis: where larger wins can come from
@@ -625,9 +626,10 @@ percentages above predate exp25-31.
625626 cache and packed ` VertexKey ` . Look for repeated state extraction, parent
626627 stack allocation, or matching in existing edges. Exp28 and exp31 show exact
627628 parent-stack reductions pay; exp10 shows merely decomposing candidate
628- construction does not. Exp45 also shows that dense sequential identifiers
629- should use direct indexing rather than hashing; audit other hot maps for the
630- same invariant before changing their representation.
629+ construction does not. Exp45-46 show that dense sequential identifiers
630+ should use direct indexing rather than hashing. The remaining content-key
631+ table is keyed by structural content and cannot use this technique; audit
632+ other hot maps only when they have the same dense invariant.
6316338 . ** Target the remaining mixed-pipeline work on ` typing ` .** Exp27 proved
632634 capture-bucket lookup itself is negligible, while exp41 removed one
633635 allocation from ` change_positions_ ` , and exp42 removed the per-node result
@@ -689,7 +691,7 @@ percentages above predate exp25-31.
689691 rather than comparing across machines or toolchains.
6906925 . Choose one hypothesis from the prioritised backlog, state whether it is in
691693 the exact-output or diff-quality lane, change one thing, measure both pairs,
692- and immediately append exp46 (then exp47 , etc.) to
694+ and immediately append exp47 (then exp48 , etc.) to
693695 ` PERF_RESEARCH_LOG.md ` and the state table here.
6946966 . Fully revert rejected source changes with ` apply_patch ` , but commit and push
695697 their log entries. For a kept change, run the wider output oracle and full
0 commit comments