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

Regressions from JitConsumeProfileForCasts #71068

Closed
Tracked by #79006
performanceautofiler bot opened this issue Jun 21, 2022 · 6 comments
Closed
Tracked by #79006

Regressions from JitConsumeProfileForCasts #71068

performanceautofiler bot opened this issue Jun 21, 2022 · 6 comments
Assignees
Labels
arch-x64 area-System.Buffers 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

Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Memory.ReadOnlySequence

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Slice_StartPosition_And_EndPosition - Duration of single invocation 13.78 ns 15.44 ns 1.12 0.08 False
Slice_Repeat_StartPosition_And_EndPosition - Duration of single invocation 53.63 ns 60.54 ns 1.13 0.00 False
Slice_StartPosition_And_Length - Duration of single invocation 13.76 ns 14.79 ns 1.08 0.03 False

graph
graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Memory.ReadOnlySequence*'

Payloads

Baseline
Compare

Histogram

System.Memory.ReadOnlySequence.Slice_StartPosition_And_EndPosition(Segment: Multiple)


Description of detection logic

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 15.440949852696159 > 14.315615126726636.
IsChangePoint: Marked as a change because one of 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -12.982560291189806 (T) = (0 -15.592018757223562) / Math.Sqrt((0.19567802268918302 / (33)) + (0.2793781352398622 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.10793883942820115 = (14.072995911281966 - 15.592018757223562) / 14.072995911281966 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.

```#### System.Memory.ReadOnlySequence.Slice_Repeat_StartPosition_And_EndPosition(Segment: Multiple)

```log

Description of detection logic

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 60.53911815824025 > 56.51169690618845.
IsChangePoint: Marked as a change because one of 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -78.32202883540016 (T) = (0 -60.54882126165877) / Math.Sqrt((0.08802749003401368 / (33)) + (0.15377110808905917 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.1207642615963715 = (54.02458245359775 - 60.54882126165877) / 54.02458245359775 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.

```#### System.Memory.ReadOnlySequence.Slice_StartPosition_And_Length(Segment: Multiple)

```log

Description of detection logic

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 14.79136944665426 > 14.5302685753443.
IsChangePoint: Marked as a change because one of 4/25/2022 5:27:54 PM, 5/11/2022 9:09:01 PM, 5/25/2022 1:42:32 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -13.592933460548643 (T) = (0 -14.670164875060912) / Math.Sqrt((0.00887993704715489 / (33)) + (0.1112432532953855 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.05675016350483825 = (13.882339820422224 - 14.670164875060912) / 13.882339820422224 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
Benchmarking workflow for dotnet/runtime repository

### Run Information
Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Buffers.Tests.ReadOnlySequenceTests<Char>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IterateTryGetTenSegments - Duration of single invocation 44.31 ns 49.51 ns 1.12 0.05 False
FirstSpanTenSegments - Duration of single invocation 5.99 ns 7.01 ns 1.17 0.02 False
SliceTenSegments - Duration of single invocation 22.47 ns 24.25 ns 1.08 0.12 False

graph
graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;*'

Payloads

Baseline
Compare

Histogram

System.Buffers.Tests.ReadOnlySequenceTests<Char>.IterateTryGetTenSegments


Description of detection logic

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 49.51110749728125 > 46.54549188272966.
IsChangePoint: Marked as a change because one of 4/25/2022 11:05:49 AM, 5/11/2022 9:09:01 PM, 5/20/2022 10:18:01 PM, 6/6/2022 10:12:27 PM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -25.620612236664037 (T) = (0 -50.76069277618435) / Math.Sqrt((0.09826238373819779 / (33)) + (2.1824784404985293 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.14585725487163467 = (44.299316132418994 - 50.76069277618435) / 44.299316132418994 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;.FirstSpanTenSegments

```log

Description of detection logic

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 7.010698722159374 > 6.2647678022924715.
IsChangePoint: Marked as a change because one of 5/20/2022 10:18:01 PM, 6/17/2022 12:17:51 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -20.117197724859327 (T) = (0 -7.086505846700433) / Math.Sqrt((0.0855579979926397 / (47)) + (0.003745441458601351 / (22))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (47) + (22) - 2, .025) and -0.1450260446035094 = (6.1889472995824235 - 7.086505846700433) / 6.1889472995824235 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;.SliceTenSegments

```log

Description of detection logic

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 24.24975770649659 > 23.57585806292471.
IsChangePoint: Marked as a change because one of 5/31/2022 4:05:26 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -9.622886707602175 (T) = (0 -24.453196855023368) / Math.Sqrt((0.7184939338052545 / (33)) + (0.23922640331470277 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.07105175531117386 = (22.831013285552157 - 24.453196855023368) / 22.831013285552157 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
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Buffers.Tests.ReadOnlySequenceTests<Byte>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IterateTryGetTenSegments - Duration of single invocation 39.19 ns 41.74 ns 1.07 0.07 False
IterateGetPositionTenSegments - Duration of single invocation 79.13 ns 85.82 ns 1.08 0.02 False

graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Tests.ReadOnlySequenceTests&lt;Byte&gt;*'

Payloads

Baseline
Compare

Histogram

System.Buffers.Tests.ReadOnlySequenceTests<Byte>.IterateTryGetTenSegments


Description of detection logic

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 41.742896551494745 > 41.39769712247376.
IsChangePoint: Marked as a change because one of 5/25/2022 1:42:32 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -49.36296392191485 (T) = (0 -41.88757011156184) / Math.Sqrt((0.046993689410258145 / (33)) + (0.04637099274925687 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.06538501733546524 = (39.316837978745866 - 41.88757011156184) / 39.316837978745866 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Byte&gt;.IterateGetPositionTenSegments

```log

Description of detection logic

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 85.82089165007152 > 83.11101442489134.
IsChangePoint: Marked as a change because one of 4/19/2022 4:39:14 PM, 4/20/2022 8:23:28 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -17.75233327666725 (T) = (0 -83.97774842540112) / Math.Sqrt((0.03171121923477616 / (33)) + (2.6998220065498866 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.06186447864681352 = (79.08518470494288 - 83.97774842540112) / 79.08518470494288 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
Benchmarking workflow for dotnet/runtime repository

@performanceautofiler performanceautofiler bot added CoreClr untriaged New issue has not been triaged by the area owner labels Jun 21, 2022
@EgorBo EgorBo changed the title [Perf] Changes at 6/15/2022 12:09:49 AM Regressions from JitConsumeProfileForCasts Jun 21, 2022
@EgorBo EgorBo transferred this issue from dotnet/perf-autofiling-issues Jun 21, 2022
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@EgorBo EgorBo added tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark and removed untriaged New issue has not been triaged by the area owner labels Jun 21, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jun 21, 2022
@EgorBo
Copy link
Member

EgorBo commented Jun 21, 2022

win-x64 dotnet/perf-autofiling-issues#6213

@ghost
Copy link

ghost commented Jun 22, 2022

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

Issue Details

Run Information

Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Memory.ReadOnlySequence

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Slice_StartPosition_And_EndPosition - Duration of single invocation 13.78 ns 15.44 ns 1.12 0.08 False
Slice_Repeat_StartPosition_And_EndPosition - Duration of single invocation 53.63 ns 60.54 ns 1.13 0.00 False
Slice_StartPosition_And_Length - Duration of single invocation 13.76 ns 14.79 ns 1.08 0.03 False

graph
graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Memory.ReadOnlySequence*'

Payloads

Baseline
Compare

Histogram

System.Memory.ReadOnlySequence.Slice_StartPosition_And_EndPosition(Segment: Multiple)


Description of detection logic

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 15.440949852696159 > 14.315615126726636.
IsChangePoint: Marked as a change because one of 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -12.982560291189806 (T) = (0 -15.592018757223562) / Math.Sqrt((0.19567802268918302 / (33)) + (0.2793781352398622 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.10793883942820115 = (14.072995911281966 - 15.592018757223562) / 14.072995911281966 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.

```#### System.Memory.ReadOnlySequence.Slice_Repeat_StartPosition_And_EndPosition(Segment: Multiple)

```log

Description of detection logic

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 60.53911815824025 > 56.51169690618845.
IsChangePoint: Marked as a change because one of 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -78.32202883540016 (T) = (0 -60.54882126165877) / Math.Sqrt((0.08802749003401368 / (33)) + (0.15377110808905917 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.1207642615963715 = (54.02458245359775 - 60.54882126165877) / 54.02458245359775 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.

```#### System.Memory.ReadOnlySequence.Slice_StartPosition_And_Length(Segment: Multiple)

```log

Description of detection logic

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 14.79136944665426 > 14.5302685753443.
IsChangePoint: Marked as a change because one of 4/25/2022 5:27:54 PM, 5/11/2022 9:09:01 PM, 5/25/2022 1:42:32 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -13.592933460548643 (T) = (0 -14.670164875060912) / Math.Sqrt((0.00887993704715489 / (33)) + (0.1112432532953855 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.05675016350483825 = (13.882339820422224 - 14.670164875060912) / 13.882339820422224 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
Benchmarking workflow for dotnet/runtime repository

### Run Information
Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Buffers.Tests.ReadOnlySequenceTests<Char>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IterateTryGetTenSegments - Duration of single invocation 44.31 ns 49.51 ns 1.12 0.05 False
FirstSpanTenSegments - Duration of single invocation 5.99 ns 7.01 ns 1.17 0.02 False
SliceTenSegments - Duration of single invocation 22.47 ns 24.25 ns 1.08 0.12 False

graph
graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;*'

Payloads

Baseline
Compare

Histogram

System.Buffers.Tests.ReadOnlySequenceTests<Char>.IterateTryGetTenSegments


Description of detection logic

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 49.51110749728125 > 46.54549188272966.
IsChangePoint: Marked as a change because one of 4/25/2022 11:05:49 AM, 5/11/2022 9:09:01 PM, 5/20/2022 10:18:01 PM, 6/6/2022 10:12:27 PM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -25.620612236664037 (T) = (0 -50.76069277618435) / Math.Sqrt((0.09826238373819779 / (33)) + (2.1824784404985293 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.14585725487163467 = (44.299316132418994 - 50.76069277618435) / 44.299316132418994 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;.FirstSpanTenSegments

```log

Description of detection logic

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 7.010698722159374 > 6.2647678022924715.
IsChangePoint: Marked as a change because one of 5/20/2022 10:18:01 PM, 6/17/2022 12:17:51 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -20.117197724859327 (T) = (0 -7.086505846700433) / Math.Sqrt((0.0855579979926397 / (47)) + (0.003745441458601351 / (22))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (47) + (22) - 2, .025) and -0.1450260446035094 = (6.1889472995824235 - 7.086505846700433) / 6.1889472995824235 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Char&gt;.SliceTenSegments

```log

Description of detection logic

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 24.24975770649659 > 23.57585806292471.
IsChangePoint: Marked as a change because one of 5/31/2022 4:05:26 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -9.622886707602175 (T) = (0 -24.453196855023368) / Math.Sqrt((0.7184939338052545 / (33)) + (0.23922640331470277 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.07105175531117386 = (22.831013285552157 - 24.453196855023368) / 22.831013285552157 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
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS Windows 10.0.19042
Baseline 261574bf4121b40c7023c73571fb7a690397bd0f
Compare eeb0c1551b5fc9ccd6ceeaf5d2b1504afab249d7
Diff Diff

Regressions in System.Buffers.Tests.ReadOnlySequenceTests<Byte>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IterateTryGetTenSegments - Duration of single invocation 39.19 ns 41.74 ns 1.07 0.07 False
IterateGetPositionTenSegments - Duration of single invocation 79.13 ns 85.82 ns 1.08 0.02 False

graph
graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Tests.ReadOnlySequenceTests&lt;Byte&gt;*'

Payloads

Baseline
Compare

Histogram

System.Buffers.Tests.ReadOnlySequenceTests<Byte>.IterateTryGetTenSegments


Description of detection logic

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 41.742896551494745 > 41.39769712247376.
IsChangePoint: Marked as a change because one of 5/25/2022 1:42:32 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -49.36296392191485 (T) = (0 -41.88757011156184) / Math.Sqrt((0.046993689410258145 / (33)) + (0.04637099274925687 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.06538501733546524 = (39.316837978745866 - 41.88757011156184) / 39.316837978745866 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.

```#### System.Buffers.Tests.ReadOnlySequenceTests&lt;Byte&gt;.IterateGetPositionTenSegments

```log

Description of detection logic

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 85.82089165007152 > 83.11101442489134.
IsChangePoint: Marked as a change because one of 4/19/2022 4:39:14 PM, 4/20/2022 8:23:28 AM, 6/14/2022 6:55:13 PM, 6/21/2022 6:07:15 AM falls between 6/12/2022 5:56:07 PM and 6/21/2022 6:07:15 AM.
IsRegressionStdDev: Marked as regression because -17.75233327666725 (T) = (0 -83.97774842540112) / Math.Sqrt((0.03171121923477616 / (33)) + (2.6998220065498866 / (36))) is less than -1.9960083540247138 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (36) - 2, .025) and -0.06186447864681352 = (79.08518470494288 - 83.97774842540112) / 79.08518470494288 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
Benchmarking workflow for dotnet/runtime repository

Author: performanceautofiler[bot]
Assignees: EgorBo
Labels:

area-System.Buffers, tenet-performance, tenet-performance-benchmarks, untriaged, refs/heads/main, RunKind=micro, Windows 10.0.19042, Regression, CoreClr, x64

Milestone: -

@EgorBo
Copy link
Member

EgorBo commented Jun 23, 2022

@EgorBo EgorBo added this to the 7.0.0 milestone Jul 6, 2022
@EgorBo EgorBo removed the untriaged New issue has not been triaged by the area owner label Jul 6, 2022
@EgorBo
Copy link
Member

EgorBo commented Jul 31, 2022

I was not able to reproduce the issue when I disable JitConsumeProfileForCasts so moving to 8.0

@EgorBo EgorBo modified the milestones: 7.0.0, 8.0.0 Jul 31, 2022
@EgorBo
Copy link
Member

EgorBo commented Sep 29, 2022

Should be fixed with #75991 + PGO update

@EgorBo EgorBo closed this as completed Sep 29, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Oct 30, 2022
@jeffhandley jeffhandley added runtime-coreclr specific to the CoreCLR runtime and removed CoreClr labels Dec 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-x64 area-System.Buffers 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

3 participants