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] Linux/x64: Regressions in System.Text.Tests.Perf_StringBuilder #107042

Closed
performanceautofiler bot opened this issue Aug 27, 2024 · 4 comments
Closed
Labels
arch-x64 area-Meta os-linux Linux OS (any supported distro) runtime-coreclr specific to the CoreCLR runtime tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark

Comments

@performanceautofiler
Copy link

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue ViperUbuntu
Baseline bb1b43a6a155eaeb45953a3c87f6e04b12979778
Compare d3da7a2c823245534e557f97013136d06a98e731
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Text.Tests.Perf_StringBuilder

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
116.54 μs 123.20 μs 1.06 0.00 False
96.58 μs 102.18 μs 1.06 0.01 False
95.03 μs 100.67 μs 1.06 0.01 False

graph
graph
graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Tests.Perf_StringBuilder*'

System.Text.Tests.Perf_StringBuilder.ToString_MultipleSegments(length: 100000)

ETL Files

Histogram

JIT Disasms

System.Text.Tests.Perf_StringBuilder.ctor_string(length: 100000)

ETL Files

Histogram

JIT Disasms

System.Text.Tests.Perf_StringBuilder.ToString_SingleSegment(length: 100000)

ETL Files

Histogram

JIT Disasms

Docs

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


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue ViperUbuntu
Baseline bb1b43a6a155eaeb45953a3c87f6e04b12979778
Compare d3da7a2c823245534e557f97013136d06a98e731
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Tests.Perf_String

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
19.66 ns 38.79 ns 1.97 0.02 False
96.11 ns 135.16 ns 1.41 0.03 False

graph
graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_String*'

System.Tests.Perf_String.IndexerCheckBoundCheckHoist

ETL Files

Histogram

JIT Disasms

System.Tests.Perf_String.IndexerCheckPathLength

ETL Files

Histogram

JIT Disasms

Docs

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


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue ViperUbuntu
Baseline bb1b43a6a155eaeb45953a3c87f6e04b12979778
Compare d3da7a2c823245534e557f97013136d06a98e731
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Collections.ContainsTrue<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
5.12 μs 6.32 μs 1.23 0.06 False

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsTrue&lt;Int32&gt;*'

System.Collections.ContainsTrue<Int32>.SortedSet(Size: 512)

ETL Files

Histogram

JIT Disasms

Docs

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


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue ViperUbuntu
Baseline bb1b43a6a155eaeb45953a3c87f6e04b12979778
Compare d3da7a2c823245534e557f97013136d06a98e731
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Collections.ContainsTrueComparer<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
5.11 μs 6.47 μs 1.27 0.07 False

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsTrueComparer&lt;Int32&gt;*'

System.Collections.ContainsTrueComparer<Int32>.SortedSet(Size: 512)

ETL Files

Histogram

JIT Disasms

Docs

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


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue ViperUbuntu
Baseline bb1b43a6a155eaeb45953a3c87f6e04b12979778
Compare d3da7a2c823245534e557f97013136d06a98e731
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in Benchstone.BenchI.BenchE

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
225.99 ms 291.57 ms 1.29 0.03 False

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Benchstone.BenchI.BenchE*'

Benchstone.BenchI.BenchE.Test

ETL Files

Histogram

JIT Disasms

Docs

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

@performanceautofiler performanceautofiler bot added arch-x64 os-linux Linux OS (any supported distro) runtime-coreclr specific to the CoreCLR runtime untriaged New issue has not been triaged by the area owner labels Aug 27, 2024
@LoopedBard3 LoopedBard3 transferred this issue from dotnet/perf-autofiling-issues Aug 27, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 27, 2024
@LoopedBard3 LoopedBard3 changed the title [Perf] Linux/x64: 8 Regressions on 8/18/2024 5:03:53 PM [Perf] Linux/x64: Regressions in System.Text.Tests.Perf_StringBuilder Aug 27, 2024
@LoopedBard3
Copy link
Member

Only PR in the compare list: #106578 @jkotas. It is not clear how this PR would cause all of this impact though (Regressions and Improvements). Only the Regressions in System.Text.Tests.Perf_StringBuilder seem likely to be not noise, keeping the rest just incase though.

@LoopedBard3
Copy link
Member

LoopedBard3 commented Aug 27, 2024

@jkotas
Copy link
Member

jkotas commented Aug 27, 2024

Only PR in the compare list: #106578 @jkotas. It is not clear how this PR would cause all of this impact though

We have picked up build images with new version of the C/C++ compilers at the same time. The build image updates are not submitted as PRs. They just happen in the background.

This PR fixed build break introduced by the new version of the compilers, so the regression got attributed to it. I believe that the C/C++ compiler update is responsible for the regressions and improvements. I expect that some of these will go away once we pick up fresh C/C++ PGO data collected on binaries produced by the new compilers.

Copy link
Contributor

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

@teo-tsirpanis teo-tsirpanis removed the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Sep 1, 2024
@jeffhandley jeffhandley added tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark labels Sep 17, 2024
@dotnet-policy-service dotnet-policy-service bot removed the untriaged New issue has not been triaged by the area owner label Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-x64 area-Meta os-linux Linux OS (any supported distro) runtime-coreclr specific to the CoreCLR runtime tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark
Projects
None yet
Development

No branches or pull requests

7 participants
@jeffhandley @jkotas @jeffschwMSFT @teo-tsirpanis @LoopedBard3 and others