Repository navigation
perf: isolate layout in Logs virtual viewports - #24
smiggleworth wants to merge 1 commit into
Conversation
|
Disposition: close without adopting this optimization. The matched native runs on the exact baseline and candidate show no consistent benefit. Across the three complete enabled/disabled pairs, measured layout time was 37.561 vs 37.805 ms (desktop, -0.65%), 50.392 vs 48.208 ms (reverse-order desktop, +4.53%), and 48.712 vs 45.033 ms (mobile, +8.17%). Native layout counts and dirty/total object counts were equal within each pair. This does not establish a reliable reduction in work or a measured real-application bottleneck, as required by this repository's Optimization Gate. The exact-head hosted Browser product flows check also remains failed: the unrelated workspace heap-retention case recorded a 121 ms maximum long task against the unchanged <100 ms gate. That result is not attributed to this CSS change, and the threshold is not being relaxed. Closing the draft without adoption. The PR branch and local qualification evidence are being preserved for reconsideration if a repeatable real-application benefit is measured and full acceptance passes. |
Draft checkpoint
Isolate layout in the two existing fixed-height Logs virtual scroll viewports. The necessary synchronous restoration reads remain in place; the proposed containment boundary may let those reads avoid laying out unrelated page content.
Product changes are two app class props and one
contain: layoutdeclaration. There are no package, public API, ref timing, scheduler, cache, state, observer, or performance-budget changes.Evidence already qualified
npm run checkpassed: 53 unit tests, types, lint and build. This command does not include full browser acceptance.Optimization gate and limitations
Native source-bound traces identify getter-triggered style/layout work at the List and Table restoration reads. They establish request sites and observed cost; they do not prove the preceding invalidation owner, the historical failure cause, or any avoided cost from this candidate.
Legibility cost: one named app class shared by two existing roots and one CSS declaration. There is one runtime path. If a browser ignores the declaration, it retains the existing uncontained CSS path; equivalence in such an unsupported browser has not been tested.
Pending before adoption: measured native benefit, full acceptance with the unchanged
<100msmaximum-action and maximum-long-task gates, canonical appearance checks, and complete optimization-gate qualification. Source approval covers this draft checkpoint only.The existing CSS zoom 2 popup positioning defect is independently confirmed on the unchanged baseline and remains unresolved. The normal popup bounds control explicitly resets to zoom 1; containment does not claim to fix zoom 2 overflow.
This PR remains a draft at the user's requested stopping point. No merge, release, or publication is proposed yet.