perf(streaming): item 3 bought nothing, item 5 removed dead weight -- both worth knowing
Two WORK-NEXT items, one null result and one confirmed removal. Item 4 untouched.
ITEM 3 -- CANCEL OBSOLETE WORK AND PRIORITISE THE FLOOR: NULL RESULT
Clean -nullrhi, diagnostics off, 800 cm/s, 200 m of travel:
before after
request->ready p95 0.369117 s 0.367612 s
queue wait p95 0.066949 s 0.064483 s
generation p95 0.287926 s 0.283642 s
p95 travel distance 2.952938 m 2.940894 m
obsolete aborts 0 12
Flat. Aborting obsolete tiles, sorting from the true pawn position and prioritising the
occupied/next tile changed request-to-ready by 0.4%.
⭐ AND THE NULL RESULT IS ITSELF THE FINDING. Look at the split: queue wait is 65 ms of a
368 ms p95; generation is 284 ms. **The queue was never the problem, so reordering it
cannot help.** Only 12 tiles in a 200 m run were obsolete enough to abort. The floor is
late because generation is slow, not because work is badly ordered -- item 3 establishes
that by exclusion, which is worth more than the 0.4%.
The machinery is kept: it is correct, it costs nothing, and it will matter once
generation is fast enough for ordering to be the binding constraint.
ITEM 5 -- VERDICT CACHE REMOVED. It was pure overhead.
Clean moving-session audit:
outer calls/probes/hits 2,109 / 2,109 / 0
nested calls/probes/hits 19,904 / 19,904 / 0
enclosing hits 0
stores 15,877, evictions 15,365
⇒ It stored 15,877 proofs, evicted 15,365 of them, and hit ZERO times. A moving player
visits unique regions; the cache was filling and thrashing a 512-entry table under a
global lock for no benefit. Same-binary A/B: request p95 0.367645 vs 0.365978,
generation p95 0.285559 vs 0.285992 -- neutral within noise, so its cost was the lock and
the linear scans rather than time we can see.
Removed: the global cache, its lock, the entry table, the invalidation path, the
cache-only profiler fields and the synthetic probe. The proof classifier stays.
⚠️ I asked for this cache two days ago on the strength of a commandlet measurement that
re-visited the same region repeatedly. That access pattern is nothing like a moving
player, and I should have said so when specifying it.
VERIFIED BY ME: build 0 errors; export 0.563 / 0.565 / 0.566 s (35de59b was 0.545-0.563,
flat as expected); geometry SHA-256 b3e5f4c3..9b377 UNCHANGED; capability 20,830 /
10,909, connected.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aheo2crrZmHuYtPpdY2Cb
This commit is contained in:
1 parent
35de59bac5
commit
cf0319d480
12 files changed
+660
-514
No files matched your search
+7
-6
@@ -72,14 +72,15 @@ operation sits in the pipeline. It also makes interval proofs harder to trust.
|
||||
|
||||
**Do**: make the stack the single semantic source of truth. Likely overlaps heavily with item 2.
|
||||
|
||||
## 5. Prove the verdict cache earns its place, or remove it · small
|
||||
## 5. Verdict cache removed after moving-session audit · complete
|
||||
|
||||
Zero outer hits in **both** traces. Global lock, linear scan, 512 entries, keyed on sample step so it
|
||||
barely reuses across LODs. It helped a deliberately repeated commandlet case, which is not how a
|
||||
moving player streams.
|
||||
The clean moving-session audit found zero outer or nested hits: 2,109 outer probes and 19,904 nested
|
||||
probes produced 15,877 stores and 15,365 replacements in the full 512-entry table. Same-binary
|
||||
cache-on/cache-off request-to-ready was 0.367645/0.365978 s p95 and generation was 0.285559/0.285992
|
||||
s p95, so the cache was neutral within run noise while paying the global lock and linear scans.
|
||||
|
||||
**Do**: measure nested/outer calls, hits and evictions on a real session. If it is neutral or negative,
|
||||
take it out and reclaim the memory.
|
||||
The global verdict cache, lock, entry table, invalidation path, cache-only profiler fields, and
|
||||
deliberate cache probe are removed. The proof classifier remains; item 4 is still deliberately untouched.
|
||||
|
||||
## 6. Three small, sharp ones · tiny
|
||||
|
||||
|
||||
Reference in new issue
Block a user