dotnet / perf-autofiling-issues

A landing place for auto-filed performance issues before they receive triage
MIT License
9 stars 4 forks source link

[Perf] Linux/x64: 4 Improvements on 1/26/2023 7:55:58 PM #12324

Open performanceautofiler[bot] opened 1 year ago

performanceautofiler[bot] commented 1 year ago

Run Information

Architecture x64
OS ubuntu 18.04
Baseline a2c4d79f88965a1fecba02331378cd335f55df9c
Compare f60d188f16f3843eddc0116ee47a7c0f85a08cb2
Diff Diff

Improvements in System.Memory.Span<Byte>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[IndexOfAnyTwoValues - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x64_ubuntu 18.04_AOT=true_CompliationMode=wasm_RunKind=micro/System.Memory.Span(Byte).IndexOfAnyTwoValues(Size%3a%204).html>) 12.84 ns 10.22 ns 0.80 0.58 False

graph Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Byte&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Memory.Span<Byte>.IndexOfAnyTwoValues(Size: 4) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsImprovementWindowed:Marked as improvement because 10.220335242512183 < 12.10755197234332. IsChangePoint: Marked as a change because one of 1/12/2023 3:42:01 AM, 1/26/2023 4:17:33 PM, 1/31/2023 8:24:06 AM falls between 1/22/2023 4:26:49 PM and 1/31/2023 8:24:06 AM. IsImprovementStdDev: Marked as improvement because 7.416333332126546 (T) = (0 -10.164402929369208) / Math.Sqrt((1.7399837014373865 / (243)) + (0.7517205099199613 / (19))) is greater than 1.9691300033599934 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (243) + (19) - 2, .975) and 0.136231577546018 = (11.767509282744966 - 10.164402929369208) / 11.767509282744966 is greater than 0.05. IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Architecture x64
OS ubuntu 18.04
Baseline a2c4d79f88965a1fecba02331378cd335f55df9c
Compare f60d188f16f3843eddc0116ee47a7c0f85a08cb2
Diff Diff

Improvements in System.Numerics.Tests.Perf_VectorOf<UInt16>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[LessThanOrEqualBenchmark - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x64_ubuntu 18.04_AOT=true_CompliationMode=wasm_RunKind=micro/System.Numerics.Tests.Perf_VectorOf(UInt16).LessThanOrEqualBenchmark.html>) 215.78 ns 75.91 ns 0.35 0.37 False
[LessThanBenchmark - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x64_ubuntu 18.04_AOT=true_CompliationMode=wasm_RunKind=micro/System.Numerics.Tests.Perf_VectorOf(UInt16).LessThanBenchmark.html>) 214.52 ns 72.50 ns 0.34 0.34 False

graph graph Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_VectorOf&lt;UInt16&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Numerics.Tests.Perf_VectorOf<UInt16>.LessThanOrEqualBenchmark ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsImprovementWindowed:Marked as improvement because 75.9092868681926 < 202.92034880435585. IsChangePoint: Marked as a change because one of 12/9/2022 1:52:32 PM, 1/12/2023 3:42:01 AM, 1/26/2023 4:17:33 PM, 1/31/2023 8:24:06 AM falls between 1/22/2023 4:26:49 PM and 1/31/2023 8:24:06 AM. IsImprovementStdDev: Marked as improvement because 25.204919096496614 (T) = (0 -96.06922289985069) / Math.Sqrt((7847.277042098759 / (299)) + (843.5084096796489 / (19))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (19) - 2, .975) and 0.6879966930546388 = (307.9109123566904 - 96.06922289985069) / 307.9109123566904 is greater than 0.05. IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so. ```#### System.Numerics.Tests.Perf_VectorOf<UInt16>.LessThanBenchmark ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsImprovementWindowed:Marked as improvement because 72.49835496819385 < 212.25471394884477. IsChangePoint: Marked as a change because one of 12/9/2022 1:52:32 PM, 1/12/2023 3:42:01 AM, 1/26/2023 4:17:33 PM, 1/31/2023 8:24:06 AM falls between 1/22/2023 4:26:49 PM and 1/31/2023 8:24:06 AM. IsImprovementStdDev: Marked as improvement because 24.6982613447567 (T) = (0 -94.94936643570468) / Math.Sqrt((7037.860684711072 / (299)) + (933.7278839985304 / (19))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (19) - 2, .975) and 0.6892109480798588 = (305.51065376685926 - 94.94936643570468) / 305.51065376685926 is greater than 0.05. IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Architecture x64
OS ubuntu 18.04
Baseline a2c4d79f88965a1fecba02331378cd335f55df9c
Compare f60d188f16f3843eddc0116ee47a7c0f85a08cb2
Diff Diff

Improvements in System.Memory.Span<Char>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[IndexOfAnyThreeValues - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x64_ubuntu 18.04_AOT=true_CompliationMode=wasm_RunKind=micro/System.Memory.Span(Char).IndexOfAnyThreeValues(Size%3a%2033).html>) 25.48 ns 18.00 ns 0.71 0.51 False

graph Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Char&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Memory.Span<Char>.IndexOfAnyThreeValues(Size: 33) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small. IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small. IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline. IsImprovementWindowed:Marked as improvement because 18.002452997909668 < 19.747649627257918. IsChangePoint: Marked as a change because one of 1/26/2023 4:17:33 PM, 1/31/2023 8:24:06 AM falls between 1/22/2023 4:26:49 PM and 1/31/2023 8:24:06 AM. IsImprovementStdDev: Marked as improvement because 9.578767376380851 (T) = (0 -16.861686178809297) / Math.Sqrt((2.3991372834545017 / (243)) + (1.989315690947527 / (19))) is greater than 1.9691300033599934 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (243) + (19) - 2, .975) and 0.16127620105352608 = (20.103979641437817 - 16.861686178809297) / 20.103979641437817 is greater than 0.05. IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)
lewing commented 1 year ago

there are a couple of improvements in the graphs

https://github.com/dotnet/runtime/pull/81277 is one https://github.com/dotnet/runtime/pull/81277 is another @vargaz