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/arm64: 1 Regression on 5/13/2024 4:59:01 PM #102322

Open
performanceautofiler bot opened this issue May 16, 2024 · 5 comments
Open

[Perf] Linux/arm64: 1 Regression on 5/13/2024 4:59:01 PM #102322

performanceautofiler bot opened this issue May 16, 2024 · 5 comments
Assignees
Labels
arch-arm64 area-System.Text.Json 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
Milestone

Comments

@performanceautofiler
Copy link

Run Information

Name Value
Architecture arm64
OS ubuntu 22.04
Queue AmpereUbuntu
Baseline 3de068c2be232960f4cb3b233dd2b4014e2ce7c3
Compare 8c1e16660727190ba5e013ebf01021b6586dd844
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Text.Json.Serialization.Tests.WriteJson<LoginViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
325.48 ns 344.01 ns 1.06 0.01 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.Text.Json.Serialization.Tests.WriteJson&lt;LoginViewModel&gt;*'

System.Text.Json.Serialization.Tests.WriteJson<LoginViewModel>.SerializeToStream(Mode: SourceGen)

ETL Files

Histogram

JIT Disasms

Docs

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

@performanceautofiler performanceautofiler bot added arch-arm64 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 May 16, 2024
@EgorBo EgorBo transferred this issue from dotnet/perf-autofiling-issues May 16, 2024
Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-text-json, @gregsdennis
See info in area-owners.md if you want to be subscribed.

@EgorBo
Copy link
Member

EgorBo commented May 16, 2024

Looks like it regressed by #101461 cc @BrennanConroy

@EgorBo EgorBo added tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark labels May 16, 2024
@stephentoub
Copy link
Member

cc: @eiriktsarpalis

@BrennanConroy
Copy link
Member

BrennanConroy commented May 16, 2024

Darn, might be the struct copying. Could probably convert it to static methods instead. Although odd it's only 1 benchmark.

@eiriktsarpalis
Copy link
Member

Seems to be impacting fast-path source gen only, which is probably expected -- infrastructural overhead is the dominant factor in that case.

Could probably convert it to static methods instead.

If you're talking about static abstracts, that wouldn't work with the older TFMs that STJ supports. If this is actually caused by struct copying, perhaps you could try converting the context to a ref parameter?

@eiriktsarpalis eiriktsarpalis removed the untriaged New issue has not been triaged by the area owner label May 20, 2024
@eiriktsarpalis eiriktsarpalis added this to the 9.0.0 milestone May 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-arm64 area-System.Text.Json 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

4 participants