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: 1 Regression on 12/12/2022 1:43:17 AM #10898

Open performanceautofiler[bot] opened 1 year ago

performanceautofiler[bot] commented 1 year ago

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 6407eae2c9cda49c725e744f9628bca65b6e71d2
Compare 21a8eb51ad181f6eb2d7f24d8eda34840025a8a0
Diff Diff

Regressions in Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Indexer_FirstElement_Array - 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/Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_Array.html>) 4.12 ns 5.55 ns 1.35 0.68 False

graph Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark*'
### Payloads [Baseline]() [Compare]() ### Histogram #### Microsoft.Extensions.Primitives.Performance.StringValuesBenchmark.Indexer_FirstElement_Array ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small. IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 5.552823148638666 > 4.6888776252431885. IsChangePoint: Marked as a change because one of 12/11/2022 2:11:02 PM, 12/20/2022 9:29:18 AM falls between 12/11/2022 2:11:02 PM and 12/20/2022 9:29:18 AM. IsRegressionStdDev: Marked as regression because -3.760210033937515 (T) = (0 -5.678417393450718) / Math.Sqrt((1.396072624104246 / (13)) + (1.4418675679119386 / (43))) is less than -2.0048792881871513 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (13) + (43) - 2, .025) and -0.3308217855149352 = (4.266850344092892 - 5.678417393450718) / 4.266850344092892 is less than -0.05. IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small. 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)
radekdoulik commented 1 year ago

This looks like real regression, not sure what is causing it. Possibly https://github.com/dotnet/runtime/pull/79460? Not sure about it though.