Skip to content

perf(render): compute viewer exclusions only for occupied seats#57

Closed
TypeThe0ry wants to merge 2 commits into
devfrom
codex/perf-render-viewer-membership
Closed

perf(render): compute viewer exclusions only for occupied seats#57
TypeThe0ry wants to merge 2 commits into
devfrom
codex/perf-render-viewer-membership

Conversation

@TypeThe0ry

Copy link
Copy Markdown
Member

Pure performance scope

This PR changes only the render-snapshot viewer exclusion precomputation and its behavior-preservation test. It does not change game rules, render ordering, visibility policy, packets, timers, interaction handling, or supported platforms.

Candidate

Before this change, every render snapshot built an exclusion UUID list and membership signature for every online viewer, although the snapshot only consumes those values for the four occupied seats.

The candidate computes the same sorted/distinct viewer-derived values only for occupied seats that are actually online:

  • before: approximately O(V²) UUID/string work and O(V) exclusion collections
  • candidate: O(S × V), where S is at most four
  • offline occupied seats retain the exact existing empty signature/list behavior
  • UUID sort order, duplicate removal, and resulting snapshot values are unchanged

Evidence gate

No performance claim is made from source inspection. GitHub is the authoritative validator.

Required before merge recommendation:

  • Build and unit-test Actions pass
  • trusted snapshot profile completes A/A drift control
  • eight paired A/B measurements pass the configured time and allocation gates
  • standard server.jar evidence shows no TPS/MSPT or packet regression

The existing protected benchmark covers the real production TableRenderSnapshotFactory at 4, 32, and 128 viewers. This PR must not alter that benchmark or its thresholds.

@Arbousier1
Arbousier1 force-pushed the codex/perf-render-viewer-membership branch from 5cd5133 to 1034f7c Compare July 16, 2026 04:29
@TypeThe0ry TypeThe0ry added performance-ab Run the base-owned paired performance gate performance-snapshot Use the viewer snapshot performance profile labels Jul 16, 2026 — with ChatGPT Codex Connector
@TypeThe0ry TypeThe0ry removed the performance-ab Run the base-owned paired performance gate label Jul 16, 2026
@TypeThe0ry TypeThe0ry added the performance-ab Run the base-owned paired performance gate label Jul 16, 2026 — with ChatGPT Codex Connector
@TypeThe0ry TypeThe0ry removed the performance-ab Run the base-owned paired performance gate label Jul 16, 2026
@Arbousier1
Arbousier1 force-pushed the codex/perf-render-viewer-membership branch from f74e89d to 696e10f Compare July 16, 2026 05:38
@TypeThe0ry TypeThe0ry added the performance-ab Run the base-owned paired performance gate label Jul 16, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Member Author

Trusted performance decision

GitHub A/B run 29474791268 completed its A/A drift control and all 8 interleaved AB/BA pairs, but the formal decision is INCONCLUSIVE_NOISE_OR_NO_GAIN.

Build/Test are green and the infrastructure is healthy; however, the measured gain did not clear the trusted threshold. This candidate will not be merged or described as an optimization.

Decision artifact: 8366798158; digest: sha256:1e28ca42c23461cfb04cdf1df39a2d479ffb2c6af9ec3138067174efc6d61eff.

@TypeThe0ry TypeThe0ry removed the performance-ab Run the base-owned paired performance gate label Jul 16, 2026
@TypeThe0ry TypeThe0ry closed this Jul 16, 2026
@Arbousier1
Arbousier1 deleted the codex/perf-render-viewer-membership branch July 16, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance-snapshot Use the viewer snapshot performance profile

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants