-
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 -14%] System.Tests.Perf_UInt32.TryParseHex #39119
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
@DrewScoggins please include a diff link showing changes closely bracketing regression. This one does not work. I believe this is important for all regression issues. |
This should help you track down the diff. |
I can't repro this locally on Ubuntu 18.04. All inputs to this test show improvement for me:
|
Tagging subscribers to this area: @tannergooding, @pgovind |
I looked at the diffs for each transition back and forth in Dec and Jan and nothing stands out as relevant. Since there's not a local repro, I don't think this issue is useful. |
This commit,f6dc87f, is in the tight bound, 49186d7...b570558. You can see on this report that we are seeing a very noticeable jump. Given that the code change happened over that 12 hour period, it feels like it is worth some further digging. We can give access to a lab machine for repro as well if we are having trouble tracking it down on other machines. |
Thank you @DrewScoggins - that's from July 17, whereas the issue was for Nov and Mar regressions, and @stephentoub verified July 10th. Still we can reuse this issue. We discussed a very similar regression due to this case here #39720 (comment) The commit you correctly flagged was one that created a public Hex parsing API and replaced all other internal Hex parsing with this. As in that case, the API is slower for very short inputs. We decided to ignore that case because the absolute time is so tiny. In this case the absolute time is still tiny (regression is 2 nanoseconds) but it's an API that's more likely to be called often. @tannergooding owns this area and can make the best call on whether the code unification is worth the 2ns regression -- and in particular whether @tkp1n 's #39702 would potentially regain this regression without losing that nice common implementation. |
I don't think the 2ns difference is a concern here. We can always revisit in the future if someone reports an issue on larger workloads. |
Run Information
Regressions in System.Tests.Perf_UInt32
Historical Data in Reporting System
Repro
Histogram
System.Tests.Perf_UInt32.TryParseHex(value: "FFFFFFFF")
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: