Skip to content

fix(performance): eliminate menu error spam and repeated full scans - #30

Open
Alx8g wants to merge 8 commits into
mainfrom
fix/reduce-client-hot-path-overhead
Open

fix(performance): eliminate menu error spam and repeated full scans#30
Alx8g wants to merge 8 commits into
mainfrom
fix/reduce-client-hot-path-overhead

Conversation

@Alx8g

@Alx8g Alx8g commented Sep 4, 2026

Copy link
Copy Markdown
Owner

I integrated the existing startup/menu crash fix and stopped full menu scans for unrelated text updates. The earlier identity optimisations remain included.

Live CPU-only menu captures before and after showed:

  • Repeated menu TypeErrors fell from 1,041 to zero.
  • The menu observer path fell from 10.7% to 0.7% of sampled renderer time.
  • WOK JavaScript self-time fell from 6.85% to 0.28%.

The audit evidence covers six captures and the rendering, startup, memory, input, effects, networking and background-work review.

Maps differed, so these are menu-overhead findings, not a gameplay FPS comparison. Busy-match and sustained-load tests remain unverified because the browser harness could not attach.

No resolution/effect reductions or input/network flag changes. All 597 tests, lint, typechecking and bundle verification passed. The 51 performance checks also passed locally. Windows, macOS, Linux and performance CI passed.

Nothing is merged or installed. This remains a review build.

A hidden renderer receives no compositor frames, so with Launch Animation
off Krunker's load could stall before ready-to-show and the launch
deadlocked behind a black screen. The intro path always shows the window
at its opaque reveal; the no-intro path now does the same as soon as the
navigation starts.

Also fixes two renderer crashes hit on every launch:

- whenDOMReady reached observer and poll before their declarations
  whenever the body already existed, killing the reload/fallback
  applyClientVisuals pass (theme, identity and keyframe fix never ran).
- menu declutter called every/filter on NodeLists returned by
  querySelectorAll, throwing a repeating Uncaught TypeError on the menu.
@Alx8g
Alx8g changed the base branch from main to fix/reveal-game-window-without-intro September 4, 2026 22:29
@Alx8g
Alx8g changed the base branch from fix/reveal-game-window-without-intro to main September 4, 2026 22:37
@Alx8g Alx8g changed the title fix(performance): reduce identity and menu observer overhead fix(performance): eliminate menu error spam and repeated full scans Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant