Skip to content

Reduce always-on diagnostic profiling overhead - #3

Open
Minnona wants to merge 3 commits into
Rhenyra:mainfrom
Minnona:agent/reduce-diagnostic-overhead
Open

Reduce always-on diagnostic profiling overhead#3
Minnona wants to merge 3 commits into
Rhenyra:mainfrom
Minnona:agent/reduce-diagnostic-overhead

Conversation

@Minnona

@Minnona Minnona commented Aug 12, 2026

Copy link
Copy Markdown

Summary

  • remove unconditional timing calls from AceEvent, CallbackHandler, and oUF tag dispatch paths
  • add equipment and character-frame refresh functions to the opt-in ElvUI profiler
  • include AscensionUI when addon-level memory/CPU accounting is available
  • resolve tracked addon names to the numeric indexes expected by the 3.3.5 APIs
  • report total Lua memory as a fallback when the client returns zero for all addon memory queries

Root cause

Diagnostic timing was running around every event dispatch, callback, and oUF tag event even when no profiling session was active. These hooks sit on hot paths, so the diagnostic mechanism itself added persistent overhead.

The profiler also originally queried addon usage by name. Ascension's client returns zero for both name and numeric-index memory queries, so the report now distinguishes unavailable addon accounting from genuine zero usage and provides total Lua memory instead.

Impact

Normal gameplay no longer pays the always-on timing cost. The explicit profiler still captures the character/equipment paths needed to investigate frame-opening stalls and reports meaningful memory data on clients without addon-level accounting.

Validation

  • Lua 5.1 parsing passed for all four changed files
  • git diff --check upstream/main...HEAD
  • multiple live /eperf sessions completed without Lua errors
  • event counts, instrumented timings, FPS, garbage churn, and total Lua memory populated successfully
  • direct client API check confirmed GetAddOnMemoryUsage returns zero for both ElvUI's addon name and numeric index
  • repeated live sessions identified equipment refreshes at roughly 8 ms per call and correlated them with durability events

@Minnona
Minnona marked this pull request as ready for review August 12, 2026 19:43
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