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
perf(row-model): the adopted identity sweep answers verdict and keys from one cache read
Under adoption (every warm keystroke — a filter-only set-query above the
sync gate), carryRecord paid two evaluation-cache WeakMap gets on the
same key per survivor: filterVerdict looked the entry up, failed the
verdictPlan guard by design, and discarded it; fillSortKeysFromPrevious
then looked the same key up in the same (adopted) map to hit its early
return, behind two instanceof revalidations. ~500k redundant lookups per
50k keystroke settle.
The fused sortKeysIfPasses answers both questions from ONE get: the
verdict is still recomputed under the new plan (the memo guard still
fails for adopted entries), the keys are the same unguarded sortKeys
read the fill's early return performed, and a lineage-miss falls back to
the fill's accessor arm with a keys-only seed. The un-adopted lane is
untouched.
Certified by a new evaluationCacheLookups work counter (counts the
identity-carry path's cache reads only): the adopted-lane pin asserts
ONE lookup per swept row (read 10_050 for 10_000 sweeps + 50 survivors
before the fusion; mutation-verified — disabling the fused arm fails it
at exactly 10_050), and the un-adopted control pins 10_100 so a fusion
that merely stopped counting cannot pass. Verdict correctness is pinned
by the flipped visible set (the new filter keeps exactly the 50 rows the
old one rejected).
Zero public report drift (pnpm api clean). row-model 719, grid-core 169,
core 7, renderer-dom 168, react 1570 — all green. The ms payoff is
unmeasured (load 18 machine) and not claimed; it rides with the owed
#490 confirmation round.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments