-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Labels
Priority:2Work that is important, but not critical for the releaseWork that is important, but not critical for the releasetriaged
Description
Issue Description
ProjectTelemetry.cs class issues
after enlightening most of sdk tasks, I've run into a contention condition happening.
This was due to the
private readonly Dictionary<string, int> _taskHostTaskUsage
being accessed by multiple threads while logging Telemetry for task usage.
Unfortunately, the most direct fix Dictionary -> ConcurrentDictionary causes a regression - see here
The regression is large enough to remove any potential improvement gained by enlightening further tasks.
Steps to Reproduce
change the dictionaries in ProjectTelemetry.cs to ConcurrentDictionary
run a multithreaded build. (what's worse, the regression is clearly visible even in the normal build)
Data
Analysis
locking the files to avoid contention causes time loss
Versions & Configurations
No response
Regression
- yes
- no
Regression Details
No response
Metadata
Metadata
Assignees
Labels
Priority:2Work that is important, but not critical for the releaseWork that is important, but not critical for the releasetriaged