Add EventSource instrumentation for ProjectRootElementCache#13803
Draft
rainersigwald wants to merge 1 commit into
Draft
Add EventSource instrumentation for ProjectRootElementCache#13803rainersigwald wants to merge 1 commit into
rainersigwald wants to merge 1 commit into
Conversation
Adds 19 ProjectRootElementCache* events (IDs 113-131) so a single PerfView capture can decompose where time is spent in the cache: - Get Start/Stop with outcome string (WeakHit, WeakHitInvalidated, PreserveFormattingReload, MissLoaded, MissAfterPerFileLockHit, Null) for hit/miss ratios - LockWait + LockHeld pairs around every lock(_locker) site, parameterized by operation, separating queue time from work-under-lock - Boost Start/Stop reporting linear scan depth, current strong-cache size, and whether the entry moved to front or was newly added - FileLockWait pair plus LoadDelegateInvoked/Completed counter for measuring per-file lock single-flight effectiveness - PreserveFormattingReload, AddedHandler, and IsInvalidEntry pairs to attribute work-under-lock to specific sub-operations - DiscardImplicitReferences single event reporting weak/strong sizes and retained counts Telemetry only - no behavior change. Cache semantics, locking order, and ProjectRootElementAdded firing order are identical to before. Documented under a new ProjectRootElementCache section in event-source.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds 19 ProjectRootElementCache* events (IDs 113-131) so a single PerfView capture can decompose where time is spent in the cache:
Get Start/Stop with outcome string (WeakHit, WeakHitInvalidated, PreserveFormattingReload, MissLoaded, MissAfterPerFileLockHit, Null) for hit/miss ratios
LockWait + LockHeld pairs around every lock(_locker) site, parameterized by operation, separating queue time from work-under-lock
Boost Start/Stop reporting linear scan depth, current strong-cache size, and whether the entry moved to front or was newly added
FileLockWait pair plus LoadDelegateInvoked/Completed counter for measuring per-file lock single-flight effectiveness
PreserveFormattingReload, AddedHandler, and IsInvalidEntry pairs to attribute work-under-lock to specific sub-operations
DiscardImplicitReferences single event reporting weak/strong sizes and retained counts
Telemetry only - no behavior change. Cache semantics, locking order, and ProjectRootElementAdded firing order are identical to before.
Documented under a new ProjectRootElementCache section in event-source.md.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com