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 -8%] System.Collections.CreateAddAndClear<Int32>.Array #39026

Closed
DrewScoggins opened this issue Jul 9, 2020 · 5 comments
Closed

[Perf -8%] System.Collections.CreateAddAndClear<Int32>.Array #39026

DrewScoggins opened this issue Jul 9, 2020 · 5 comments
Assignees
Labels
arch-x64 area-System.Collections os-linux Linux OS (any supported distro) os-windows tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark
Milestone

Comments

@DrewScoggins
Copy link
Member

Run Information

Architecture x64
OS Windows 10.0.18362
Changes diff

Regressions in System.Collections.CreateAddAndClear

Benchmark Baseline Test Test/Base Modality Baseline Outlier
Array 497.68 ns 536.45 ns 1.08 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.Collections.CreateAddAndClear<Int32>*';

Histogram

System.Collections.CreateAddAndClear.Array(Size: 512)

[488.926 ; 501.636) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[501.636 ; 519.528) | @
[519.528 ; 536.146) | @
[536.146 ; 553.380) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

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.Collections 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: @eiriktsarpalis
Notify danmosemsft if you want to be subscribed.

@stephentoub
Copy link
Member

I just tried this one locally

dotnet run -c Release -f netcoreapp3.1 --runtimes netcoreapp3.1 netcoreapp5.0 --filter="System.Collections.CreateAddAndClear<Int32>.Array"

and while every once in a while I see .NET 5.0 being 20% faster, most of the time it shows up as being 50% slower:

Method Job Runtime Toolchain Size Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
Array Job-GFVCHZ .NET Core 3.1 netcoreapp3.1 512 376.6 ns 4.20 ns 3.93 ns 378.3 ns 368.0 ns 380.1 ns 1.00 0.00 0.3301 0.0016 - 2.02 KB
Array Job-FYSNIF .NET Core 5.0 netcoreapp5.0 512 570.2 ns 5.31 ns 4.96 ns 568.4 ns 564.2 ns 578.0 ns 1.51 0.02 0.3285 0.0023 - 2.02 KB

@DrewScoggins
Copy link
Member Author

Also seeing this in SortedList on Ubuntu x64

@DrewScoggins
Copy link
Member Author

DrewScoggins commented Jul 10, 2020

Run Information

Architecture x64
OS ubuntu 18.04
Changes diff

Regressions in System.Collections.CreateAddAndClear

Benchmark Baseline Test Test/Base Modality Baseline Outlier
SortedList 36.77 μs 43.26 μs 1.18 False

Related Issue on x64 Windows

[Perf -8%] System.Collections.CreateAddAndClear.Array

Related Issue on x86 Windows

[Perf -15%] System.Collections.CreateAddAndClear.SortedList

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.Collections.CreateAddAndClear<Int32>*';

Histogram

System.Collections.CreateAddAndClear.SortedList(Size: 512)

[34760.459 ; 36121.900) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36121.900 ; 37544.379) | @@@@@@@@@@@@@@
[37544.379 ; 39605.576) | @
[39605.576 ; 41022.034) | @@@@@@@@@@@@@@@@@
[41022.034 ; 42334.713) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[42334.713 ; 43696.154) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[43696.154 ; 45801.957) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Docs

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

@DrewScoggins DrewScoggins added the os-linux Linux OS (any supported distro) label Jul 10, 2020
@danmoseley
Copy link
Member

Duplicate of #39112

@danmoseley danmoseley marked this as a duplicate of #39112 Aug 1, 2020
@layomia layomia removed the untriaged New issue has not been triaged by the area owner label Aug 28, 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
arch-x64 area-System.Collections os-linux Linux OS (any supported distro) os-windows tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark
Projects
None yet
Development

No branches or pull requests

5 participants