docs: durable sprint plan + baseline harness for perf batch #342-#348
- tests/benchmarks/sprint_perf_baseline.py: one harness, four isolated stress
scenarios (anim-dispatch #342, scene-update #343, key-dispatch #344,
grid-churn #348), wall-clock timed, step()-only/pure-loop (no screenshots).
Doubles as a Callgrind target for per-function instruction counts.
- docs/sprint-perf-342-348.md: durable plan with pre-fix baselines captured
(wall-clock median/3 + Callgrind self-Ir per target function), the A/B
re-measurement protocol, per-issue root cause / fix direction / files /
acceptance / risk, suggested order (#348, #342, then #343/#344), and DoD.
Baselines (Callgrind self-Ir, harness total 3.52B Ir): setProperty 158.6M
(4.50%, #342); get_grid 72.5M (2.06%, 0% cache hit, #348); enum-ctor 19.18M
over 6000 calls (#344); per-step update GetAttrString ~3.4k Ir/call (#343).
Refs #342, #343, #344, #345, #348.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>