-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Perf -35%] System.Threading.Tests.Perf_Thread.GetCurrentProcessorId #37804
Comments
Since the threads can move between cores, long caching diminishes the value of this API. We saw problems with that. The change was to measure the underlying implementation and adjust caching accordingly. Since, I assume you have a relatively modern system, the former performance of this API was basically measuring access to a thread local. Not much real work was happening comparatively. 35% is acceptable regression in this case. The calibration expects that "working" implementation will be a bit more expensive than just fetching a value from TLS. 3x-5x regression would be alarming. It would mean our measurements are off. |
Closing based on analysis above. |
FWIW I got data from more machines and the regression is not bigger than a few nanoseconds so it's still acceptable and I am keeping it closed at it was. System.Threading.Tests.Perf_Thread.GetCurrentProcessorId
|
Run Information
Regressions in System.Threading.Tests.Perf_Thread
Historical Data in Reporting System
Repro
Histogram
System.Threading.Tests.Perf_Thread.GetCurrentProcessorId
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: