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] Regressions in System.ComponentModel.Tests.Perf_TypeDescriptorTests #52317

Closed
DrewScoggins opened this issue May 5, 2021 · 5 comments
Closed
Assignees
Milestone

Comments

@DrewScoggins
Copy link
Member

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline d2dff5d7e2d42437753ce537af1dc3df3a867975
Compare 94221f30cce9783f39d30eebbd9994f9711472e7
Diff Diff

Regressions in System.ComponentModel.Tests.Perf_TypeDescriptorTests

Benchmark Baseline Test Test/Base Test Quality Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
GetConverter - Duration of single invocation 144.68 ns 153.80 ns 1.06 0.00
GetConverter - Duration of single invocation 197.88 ns 217.19 ns 1.10 0.01
GetConverter - Duration of single invocation 146.33 ns 155.31 ns 1.06 0.01
GetConverter - Duration of single invocation 132.39 ns 145.91 ns 1.10 0.01
GetConverter - Duration of single invocation 199.22 ns 215.23 ns 1.08 0.01
GetConverter - Duration of single invocation 203.19 ns 216.42 ns 1.07 0.01
GetConverter - Duration of single invocation 120.26 ns 129.63 ns 1.08 0.01

graph
graph
graph
graph
graph
graph
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.ComponentModel.Tests.Perf_TypeDescriptorTests*'

Payloads

Baseline
Compare

Histogram

System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.ClassIDerived))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.Enum))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(string))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.ClassWithNoConverter))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(int))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.Guid))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.IDerived))


Docs

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

@DrewScoggins DrewScoggins added os-windows tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark arch-x64 labels May 5, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added area-System.ComponentModel untriaged New issue has not been triaged by the area owner labels May 5, 2021
@ghost
Copy link

ghost commented May 5, 2021

Tagging subscribers to this area: @safern
See info in area-owners.md if you want to be subscribed.

Issue Details

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline d2dff5d7e2d42437753ce537af1dc3df3a867975
Compare 94221f30cce9783f39d30eebbd9994f9711472e7
Diff Diff

Regressions in System.ComponentModel.Tests.Perf_TypeDescriptorTests

Benchmark Baseline Test Test/Base Test Quality Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
GetConverter - Duration of single invocation 144.68 ns 153.80 ns 1.06 0.00
GetConverter - Duration of single invocation 197.88 ns 217.19 ns 1.10 0.01
GetConverter - Duration of single invocation 146.33 ns 155.31 ns 1.06 0.01
GetConverter - Duration of single invocation 132.39 ns 145.91 ns 1.10 0.01
GetConverter - Duration of single invocation 199.22 ns 215.23 ns 1.08 0.01
GetConverter - Duration of single invocation 203.19 ns 216.42 ns 1.07 0.01
GetConverter - Duration of single invocation 120.26 ns 129.63 ns 1.08 0.01

graph
graph
graph
graph
graph
graph
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.ComponentModel.Tests.Perf_TypeDescriptorTests*'

Payloads

Baseline
Compare

Histogram

System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.ClassIDerived))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.Enum))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(string))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.ClassWithNoConverter))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(int))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.Guid))


System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.IDerived))


Docs

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

Author: DrewScoggins
Assignees: -
Labels:

arch-x64, area-System.ComponentModel, os-windows, tenet-performance, tenet-performance-benchmarks, untriaged

Milestone: -

@DrewScoggins
Copy link
Member Author

#52016 seems like it could be related.

@maryamariyan maryamariyan added this to the 6.0.0 milestone May 6, 2021
@maryamariyan maryamariyan removed the untriaged New issue has not been triaged by the area owner label May 6, 2021
@ericstj
Copy link
Member

ericstj commented Jul 26, 2021

@DrewScoggins I see we seem to have gained back this regression and then some, perhaps this was caused by an JIT code quality regression that's been fixed?
image
image

@safern
Copy link
Member

safern commented Jul 29, 2021

@DrewScoggins could you please confirm that this regression is not there anymore as @ericstj suggested so that we can close this issue?

@DrewScoggins
Copy link
Member Author

Yeah, looking through the commits that could have caused this, I don't see any real culprits besides PGO data update. And since we have seen this number come back down I think closing it is fine.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants