Open performanceautofiler[bot] opened 4 months ago
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
1.83 μs | 2.25 μs | 1.23 | 0.24 | False | |||
|
2.80 μs | 3.49 μs | 1.25 | 0.13 | True | |||
|
32.00 μs | 36.39 μs | 1.14 | 0.26 | False | |||
|
3.14 μs | 3.54 μs | 1.13 | 0.24 | False | |||
|
1.66 μs | 1.77 μs | 1.07 | 0.21 | False | |||
|
3.14 μs | 3.62 μs | 1.15 | 0.06 | True | |||
|
1.64 μs | 1.72 μs | 1.05 | 0.24 | False | |||
|
3.57 μs | 3.99 μs | 1.12 | 0.18 | False |
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.Numerics.Tensors.Tests.Perf_NumberTensorPrimitives<Double>*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
37.33 μs | 41.93 μs | 1.12 | 0.44 | False | |||
|
13.53 μs | 14.58 μs | 1.08 | 0.08 | False | |||
|
944.38 μs | 1.16 ms | 1.23 | 0.32 | False | |||
|
37.94 μs | 48.29 μs | 1.27 | 0.42 | False | |||
|
62.23 μs | 70.05 μs | 1.13 | 0.47 | False | |||
|
37.58 μs | 50.85 μs | 1.35 | 0.42 | False | |||
|
942.43 μs | 1.11 ms | 1.18 | 0.48 | False | |||
|
1.52 ms | 1.65 ms | 1.09 | 0.37 | False |
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.Numerics.Tensors.Tests.Perf_FloatingPointTensorPrimitives<Single>*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
684.52 μs | 787.38 μs | 1.15 | 0.18 | False |
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 'Struct.GSeq*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
297.37 ns | 321.47 ns | 1.08 | 0.10 | False |
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.Memory.Span<Char>*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
215.89 ns | 241.29 ns | 1.12 | 0.12 | False |
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.CtorGivenSize<String>*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
154.21 μs | 178.11 μs | 1.16 | 0.07 | False |
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.CtorFromCollectionNonGeneric<Int32>*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
2.02 secs | 2.17 secs | 1.08 | 0.01 | False |
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 'SciMark2.kernel*'
Name | Value |
---|---|
Architecture | x64 |
OS | ubuntu 22.04 |
Queue | TigerUbuntu |
Baseline | 8330db998659c4e6410aba370b37e4304a517a2b |
Compare | c806bf697035ee47589e246ea6f6453811d6cd40 |
Diff | Diff |
Configs | CompilationMode:wasm, RunKind:micro |
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
---|---|---|---|---|---|---|---|---|
|
25.62 ms | 28.98 ms | 1.13 | 0.15 | False |
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.Tests.Perf_Guids*'
Likely https://github.com/dotnet/runtime/pull/99273. The size of the regression makes me think it's probably because the old (broken) heuristic was not inserting traces at the "right" places, and the traces it's inserting for these scenarios aren't profitable. May investigate the worst ones.
EDIT: Most of these regressions seem to be in the tensor code, which looks to be extremely generic code that wraps vector operators, and we also know as an existing thing that
The Trim and Substring ones look like they were probably impacted by the changes that introduced more safepoints into jiterpreter traces, so the recent fix to remove safepoints may make those go away. Looking at a quick profile they seem to spend half their execution time in traces, though a good chunk of that is dominated by time spent allocating strings: Looking at the opcodes for the traces in question there are quite a few imm safepoint branch opcodes in there which were introduced recently by an interpreter optimization. The jiterp should now handle those opcodes in a more efficient way.
the vector performance indeed regressed recently, the firefox impact is a bit higher than chrome's one. https://radekdoulik.github.io/WasmPerformanceMeasurements/?startDate=2024-02-27T23%3A01%3A28.000Z&endDate=2024-03-12T22%3A53%3A01.000Z&tasks=%2CVector&flavors=2%2C3%2C14%2C15
I'm hoping https://github.com/dotnet/runtime/pull/99706 will claw back a lot of the vector perf if it lands, though it's impossible for me to measure locally (too much noise)
Run Information
Regressions in System.Tests.Perf_String
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Numerics.Tensors.Tests.Perf_FloatingPointTensorPrimitives<Double>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md