Skip to content
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 -53%] System.Numerics.Tests.Perf_Vector4.GetHashCodeBenchmark #39029

Closed
DrewScoggins opened this issue Jul 9, 2020 · 8 comments
Closed
Labels
Milestone

Comments

@DrewScoggins
Copy link
Member

Run Information

Architecture x64
OS Windows 10.0.18362
Changes diff

Regressions in System.Numerics.Tests.Perf_Vector4

Benchmark Baseline Test Test/Base Modality Baseline Outlier
GetHashCodeBenchmark 3.13 ns 4.80 ns 1.53 Bimodal True

graph
Historical Data in Reporting System

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Numerics.Tests.Perf_Vector4*';

Histogram

System.Numerics.Tests.Perf_Vector4.GetHashCodeBenchmark

[2.799 ; 3.009) | @
[3.009 ; 3.320) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[3.320 ; 3.630) | 
[3.630 ; 3.941) | 
[3.941 ; 4.252) | 
[4.252 ; 4.483) | 
[4.483 ; 4.675) | @
[4.675 ; 4.986) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[4.986 ; 5.373) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[5.373 ; 5.771) | @

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@DrewScoggins DrewScoggins added tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark labels Jul 9, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-System.Numerics untriaged New issue has not been triaged by the area owner labels Jul 9, 2020
@ghost
Copy link

ghost commented Jul 9, 2020

Tagging subscribers to this area: @tannergooding, @pgovind
Notify danmosemsft if you want to be subscribed.

@DrewScoggins
Copy link
Member Author

The earliest build we have in that graph is here, https://github.com/dotnet/core-setup/tree/b903a6e815dbcec7acfeef39db1e9189fef7ed69. That is the link to the core-setup that went into the version of core-sdk that we were running. I am not sure if that is before or after had branched for 3.1, but that should at least give a place to start looking for what caused this.

@tannergooding
Copy link
Member

There haven't been any notable changes to GetHashCode outside @stephentoub switching it off HashHelpers.Combine back in September: https://github.com/dotnet/runtime/commits/master/src/libraries/System.Numerics.Vectors/src (which is still the current implementation)

@tannergooding
Copy link
Member

We are also talking just shy of 2ns on something that is likely never used (and shouldn't be used) in a HashTable in the first place

@DrewScoggins
Copy link
Member Author

DrewScoggins commented Jul 10, 2020

Yeah, it also looks like in #39035 @stephentoub mentioned that this was by design.

I misread that other issue.

@adamsitnik
Copy link
Member

Confirmed, 5.0 milestone added:

System.Numerics.Tests.Perf_Vector4.GetHashCodeBenchmark

Conclusion Base Diff Base/Diff Modality Operating System Bit Processor Name Base Runtime Diff Runtime
Slower 2.84 9.76 0.29 Windows 10.0.18363.1016 Arm Microsoft SQ1 3.0 GHz .NET Core 3.1.6 5.0.100-rc.1.20413.9
Slower 2.94 4.58 0.64 Windows 10.0.18363.959 X64 Intel Xeon CPU E5-1650 v4 3.60GHz .NET Core 3.1.6 5.0.100-rc.1.20404.3
Slower 3.25 4.37 0.74 Windows 10.0.18363.959 X64 Intel Xeon CPU E5-1650 v4 3.60GHz .NET Core 3.1.6 5.0.100-rc.1.20418.3
Slower 3.80 5.39 0.70 Windows 10.0.19041.450 X64 Intel Core i7-5557U CPU 3.10GHz (Broadwell) .NET Core 3.1.6 5.0.100-rc.1.20413.9
Slower 3.04 4.84 0.63 ubuntu 18.04 X64 Intel Xeon CPU E5-1650 v4 3.60GHz .NET Core 3.1.6 5.0.100-rc.1.20403.23
Slower 3.50 5.49 0.64 macOS Mojave 10.14.5 X64 Intel Core i7-5557U CPU 3.10GHz (Broadwell) .NET Core 3.1.6 5.0.100-rc.1.20404.2

@adamsitnik
Copy link
Member

We are also talking just shy of 2ns on something that is likely never used

I am sorry, I've missed this comment. Removing the 5.0 milestone

@adamsitnik adamsitnik modified the milestones: 5.0.0, 6.0.0 Aug 20, 2020
@jeffhandley
Copy link
Member

Closing this as an expected (and acceptable) regression due to dotnet/corefx#40935.

@tannergooding tannergooding removed the untriaged New issue has not been triaged by the area owner label Sep 14, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants