docs(work-next): state after 2026-09-14 -- perf ledger, measured costs, what failed and why
Records in the repo what two days of perf rounds established: the in-game worker CPU trajectory (~184 s -> ~34 s static), the remove-one ablation costs, the three approaches that were tried and not kept (with where the parked work lives), the measurement lessons that each cost a round, and the next candidates. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TaFdXhTdYMkW1xrV6ApT6Y
This commit is contained in:
1 parent
7a972f513d
commit
7ece3ceafc
1 file changed
+38
@@ -170,6 +170,44 @@ before the always-on LOD0 changes.
|
||||
chain, passage landing/floor checks and `GetDensityAt`. An inline bit test is exactly the same
|
||||
predicate, so it changes no field.
|
||||
|
||||
## State after 2026-09-14 (HEAD `7a972f5`)
|
||||
|
||||
**In-game generation since the start of 2026-09-13**, headless game path (static = 841 tiles;
|
||||
moving = 160 m at 8 m/s):
|
||||
```
|
||||
worker CPU static LOD0 generation p50 static
|
||||
c65b015 classifier off ~184 s ~75 ms
|
||||
2990009 player-fit memo 48 s 73 ms
|
||||
cfad3d1 tile cache window (LOD3+) 39 s 77 ms
|
||||
ab4bbe3 field-exact LOD0 overhead 33 s 66 ms
|
||||
5489b5e inline exact IsFinite ~31-34 s ~62-66 ms
|
||||
7a972f5 (current) ~34 s ~66 ms
|
||||
```
|
||||
The later rounds' absolute figures come from slightly different harness settings. Compare within a
|
||||
round.
|
||||
|
||||
**Measured, not guessed: what each component costs** (`6ccf371`, remove-one ablation, static worker
|
||||
saving): tunnel SDF 11.4% (and it owns the LOD0 p95 tail), cave warp 10.3%, passage carving 10.1%,
|
||||
landing posts 9.9%, structural posts 5.6%, worms 2.4%, everything else <= 2.2%. Ablations change
|
||||
the field, so these mix computation cost with the cost of the geometry each component creates.
|
||||
|
||||
**Tried and not kept:**
|
||||
- the exact worm block skip: 4% skip rate, neutral, off by default;
|
||||
- value-noise / lattice worms: no gain, removed;
|
||||
- exact culling (SmoothMin cutoff, tile candidates, post early-outs): the build was 23% slower even
|
||||
with every switch off, parked on local branch `wip/exact-cull-20260914`. Only the tunnel-core
|
||||
ablation gate fix was ported.
|
||||
|
||||
**Measurement lessons**, recorded because each cost a round:
|
||||
- line-level sampler attribution of inlined code is a hint; confirm it with an ablation;
|
||||
- a switch-off A/B inside a new build cannot see always-on cost; always compare the final default
|
||||
build against the committed tip's DLL, with a fixed command line;
|
||||
- launch Unreal serially (it is a GUI exe that returns at once), and reap crash reporters.
|
||||
|
||||
**Next candidates:** a cheaper cave warp (field-changing: coarse warp lattice); the tunnel SDF (field-
|
||||
changing merge of the warped SDF and the world-space core); a real per-tile candidate filter
|
||||
designed to cost nothing per sample; the cold read-only audit's findings.
|
||||
|
||||
### Open design questions for the owner
|
||||
- All five strate slots resolve to `DA_Strate3`. Intended?
|
||||
- Should a composer roll be allowed to overwrite an explicitly authored value?
|
||||
Reference in new issue
Block a user