Skip to content

[Perf] Linux/arm64: 25 Improvements on 8/17/2022 3:53:31 PM #7377

@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Collections.ContainsFalse<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
List - Duration of single invocation 69.08 μs 57.38 μs 0.83 0.01 False
Span - Duration of single invocation 67.59 μs 53.35 μs 0.79 0.01 False
Array - Duration of single invocation 70.40 μs 58.17 μs 0.83 0.01 False
Queue - Duration of single invocation 72.41 μs 61.60 μs 0.85 0.01 False
ImmutableArray - Duration of single invocation 70.36 μs 60.44 μs 0.86 0.01 False
ICollection - Duration of single invocation 70.19 μs 57.90 μs 0.83 0.01 False
Stack - Duration of single invocation 102.50 μs 56.24 μs 0.55 0.00 False

graph
graph
graph
graph
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.Collections.ContainsFalse&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.ContainsFalse<Int32>.List(Size: 512)


Description of detection logic

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 57.38096591880343 < 65.61850075323159.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 39.45766077351937 (T) = (0 -57768.491307688186) / Math.Sqrt((4025806.8765011714 / (299)) + (204164.06967844642 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.14783044085369762 = (67789.90247616949 - 57768.491307688186) / 67789.90247616949 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.Span(Size: 512)

```log

Description of detection logic

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 53.35252410409556 < 64.21336678879308.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 18.993018799251846 (T) = (0 -53992.13159205875) / Math.Sqrt((4281492.135780292 / (299)) + (1605083.4157741938 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.18485494929975924 = (66236.22574372187 - 53992.13159205875) / 66236.22574372187 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.Array(Size: 512)

```log

Description of detection logic

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 58.167437881704736 < 66.22049059725529.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 39.46387023452482 (T) = (0 -58550.70201413239) / Math.Sqrt((5151847.150959256 / (299)) + (204404.50279209125 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.14979617678829876 = (68866.66516383475 - 58550.70201413239) / 68866.66516383475 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.Queue(Size: 512)

```log

Description of detection logic

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 61.597550442913395 < 68.79445082258599.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 32.89132410606777 (T) = (0 -61136.18832862326) / Math.Sqrt((5656578.24372516 / (299)) + (288489.0448140439 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.13965961038896874 = (71060.46521454556 - 61136.18832862326) / 71060.46521454556 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.ImmutableArray(Size: 512)

```log

Description of detection logic

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 60.43768815705127 < 67.09126910845904.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 34.000157958937045 (T) = (0 -60135.66502907683) / Math.Sqrt((5241924.327868077 / (299)) + (231859.47834476523 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.1344615925654753 = (69477.7545543245 - 60135.66502907683) / 69477.7545543245 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.ICollection(Size: 512)

```log

Description of detection logic

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 57.90358015046297 < 66.67602962100281.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 37.215609628274905 (T) = (0 -58609.158405997645) / Math.Sqrt((4626959.855632644 / (299)) + (228111.5568293787 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.14601196407727537 = (68629.95257617526 - 58609.158405997645) / 68629.95257617526 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsFalse&lt;Int32&gt;.Stack(Size: 512)

```log

Description of detection logic

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 56.24033105515587 < 97.36785726511438.
IsChangePoint: Marked as a change because one of 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 68.94332190384785 (T) = (0 -56905.93887300657) / Math.Sqrt((1759.5656243410515 / (299)) + (1748963.9249293741 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.4447901307507968 = (102494.46565126641 - 56905.93887300657) / 102494.46565126641 is greater than 0.05.
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 arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Collections.ContainsTrue<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Queue - Duration of single invocation 46.44 μs 34.32 μs 0.74 0.01 False
ICollection - Duration of single invocation 44.36 μs 34.11 μs 0.77 0.01 False
Span - Duration of single invocation 40.64 μs 30.87 μs 0.76 0.01 False
Array - Duration of single invocation 45.25 μs 34.88 μs 0.77 0.01 False
Stack - Duration of single invocation 53.09 μs 34.12 μs 0.64 0.00 False
List - Duration of single invocation 43.26 μs 33.98 μs 0.79 0.01 False
ImmutableArray - Duration of single invocation 46.21 μs 35.42 μs 0.77 0.01 False

graph
graph
graph
graph
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.Collections.ContainsTrue&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.ContainsTrue<Int32>.Queue(Size: 512)


Description of detection logic

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 34.31978358004386 < 44.05298879717438.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 60.88503138334788 (T) = (0 -34324.364498438175) / Math.Sqrt((7350849.133431905 / (299)) + (2033.3780672328685 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.21935162550644 = (43969.046269654835 - 34324.364498438175) / 43969.046269654835 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.ICollection(Size: 512)

```log

Description of detection logic

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 34.107422360809835 < 42.07306813746879.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 35.411747360812 (T) = (0 -34391.29077700723) / Math.Sqrt((8439848.663259981 / (299)) + (131004.90895178124 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.2027200970132917 = (43135.78035539744 - 34391.29077700723) / 43135.78035539744 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.Span(Size: 512)

```log

Description of detection logic

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 30.873852235371473 < 38.58359035180241.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 22.59774026980635 (T) = (0 -30578.006787478575) / Math.Sqrt((7109320.796897707 / (299)) + (532207.8537977845 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.22640363131407104 = (39527.081596078286 - 30578.006787478575) / 39527.081596078286 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.Array(Size: 512)

```log

Description of detection logic

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 34.87618454224746 < 43.01399677192587.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 35.16014042330854 (T) = (0 -34701.339591888915) / Math.Sqrt((8303620.337159046 / (299)) + (167738.72789685617 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.21105135202417796 = (43984.28171582641 - 34701.339591888915) / 43984.28171582641 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.Stack(Size: 512)

```log

Description of detection logic

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 34.11568824599709 < 50.4409389713983.
IsChangePoint: Marked as a change because one of 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 369.89311981752167 (T) = (0 -34133.229704563724) / Math.Sqrt((6118.830866395206 / (299)) + (10504.10887521921 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.35793973820906605 = (53162.034369412664 - 34133.229704563724) / 53162.034369412664 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.List(Size: 512)

```log

Description of detection logic

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 33.97986634128706 < 41.02708756025864.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 47.587604032196644 (T) = (0 -33934.844706888376) / Math.Sqrt((8023880.333197511 / (299)) + (5271.713031196661 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.19047769756641247 = (41919.592091377075 - 33934.844706888376) / 41919.592091377075 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Collections.ContainsTrue&lt;Int32&gt;.ImmutableArray(Size: 512)

```log

Description of detection logic

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 35.41646218021232 < 43.89708479686218.
IsChangePoint: Marked as a change because one of 7/9/2022 5:50:00 AM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 41.7688267098038 (T) = (0 -35573.67975624808) / Math.Sqrt((6830494.382950892 / (299)) + (87212.77607733627 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.19878070266129383 = (44399.42956242817 - 35573.67975624808) / 44399.42956242817 is greater than 0.05.
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 arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Memory.SequenceReader

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryReadTo - Duration of single invocation 274.28 ns 173.85 ns 0.63 0.01 False

graph
Test Report

Repro

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

Payloads

Baseline
Compare

Histogram

System.Memory.SequenceReader.TryReadTo


Description of detection logic

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 173.84942981088943 < 260.36074315536985.
IsChangePoint: Marked as a change because one of 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 315.90791394701193 (T) = (0 -173.21341473883513) / Math.Sqrt((12.897789742359945 / (299)) + (0.24312643067641412 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.37024867929977195 = (275.0504985781325 - 173.21341473883513) / 275.0504985781325 is greater than 0.05.
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 arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Memory.Span<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
LastIndexOfValue - Duration of single invocation 94.36 ns 56.14 ns 0.59 0.01 False
Reverse - Duration of single invocation 175.29 ns 99.41 ns 0.57 0.06 False
IndexOfValue - Duration of single invocation 66.51 ns 54.15 ns 0.81 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.Span&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Memory.Span<Int32>.LastIndexOfValue(Size: 512)


Description of detection logic

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 56.143655796605664 < 89.64483905636884.
IsChangePoint: Marked as a change because one of 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 43.38580458053953 (T) = (0 -54.37275348237777) / Math.Sqrt((3.66639462898753 / (299)) + (3.4228003801671334 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.42640490124645614 = (94.79291855968258 - 54.37275348237777) / 94.79291855968258 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Memory.Span&lt;Int32&gt;.Reverse(Size: 512)

```log

Description of detection logic

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 99.41343700893162 < 169.3042450415258.
IsChangePoint: Marked as a change because one of 6/22/2022 6:55:40 AM, 8/10/2022 11:28:06 PM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 18.170017747291947 (T) = (0 -119.87793938030391) / Math.Sqrt((3088.2870119881113 / (299)) + (599.2904772613169 / (36))) is greater than 1.9671134448822736 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (36) - 2, .975) and 0.44047527744994125 = (214.24958460093575 - 119.87793938030391) / 214.24958460093575 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Memory.Span&lt;Int32&gt;.IndexOfValue(Size: 512)

```log

Description of detection logic

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 54.15312066877914 < 62.2179337559953.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/9/2022 7:52:53 PM, 7/27/2022 9:27:06 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 16.32957562581154 (T) = (0 -54.891931228163045) / Math.Sqrt((14.241425919771975 / (299)) + (1.218336300136924 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.15005799805673817 = (64.58314932390807 - 54.891931228163045) / 64.58314932390807 is greater than 0.05.
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 arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Tests.Perf_String

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Replace_Char - Duration of single invocation 12.59 ns 6.24 ns 0.50 0.20 False
Remove_Int - Duration of single invocation 2.68 ns 1.20 ns 0.45 0.76 False
IndexOfAny - Duration of single invocation 19.47 ns 12.29 ns 0.63 0.07 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.Tests.Perf_String*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_String.Replace_Char(text: "This is a very nice sentence", oldChar: 'z', newChar: 'y')


Description of detection logic

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 6.235478804990879 < 11.839512371250915.
IsChangePoint: Marked as a change because one of 6/2/2022 10:27:31 PM, 6/30/2022 12:21:07 PM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 19.715440134793987 (T) = (0 -6.790012247831047) / Math.Sqrt((0.4465356628006159 / (299)) + (0.4105162206285016 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.48371967775372854 = (13.151793619188407 - 6.790012247831047) / 13.151793619188407 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Tests.Perf_String.Remove_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 0)

```log

Description of detection logic

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 1.1979586647548466 < 2.544570707663444.
IsChangePoint: Marked as a change because one of 8/13/2022 3:46:07 PM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 23.103825135289124 (T) = (0 -1.4581487140032703) / Math.Sqrt((0.23606053016407497 / (299)) + (0.12507751606067188 / (23))) is greater than 1.9674049737480528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (23) - 2, .975) and 0.5556318856660583 = (3.2813981628471987 - 1.4581487140032703) / 3.2813981628471987 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Tests.Perf_String.IndexOfAny

```log

Description of detection logic

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 12.289200243034388 < 18.617208712767678.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/13/2022 3:46:07 PM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 21.87811163990157 (T) = (0 -13.883835560299714) / Math.Sqrt((12.775284166600883 / (299)) + (0.9554066701355374 / (23))) is greater than 1.9674049737480528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (23) - 2, .975) and 0.3138618089134377 = (20.234751163338387 - 13.883835560299714) / 20.234751163338387 is greater than 0.05.
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 arm64
OS ubuntu 20.04
Baseline 96d1c8e3ba4bc94afdcf15ee2896a3bc984820e7
Compare 6521c2b7c01660873fa978c9e73038a1d75e7962
Diff Diff

Improvements in System.Memory.ReadOnlySpan

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IndexOfString - Duration of single invocation 18.10 ns 12.16 ns 0.67 0.01 False
IndexOfString - Duration of single invocation 18.62 ns 14.47 ns 0.78 0.02 False
IndexOfString - Duration of single invocation 29.11 ns 22.28 ns 0.77 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.Memory.ReadOnlySpan*'

Payloads

Baseline
Compare

Histogram

System.Memory.ReadOnlySpan.IndexOfString(input: "Hello Worldbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbba!", value: "y", comparisonType: Ordinal)


Description of detection logic

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 12.161478482077177 < 17.197237050434364.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 157.83321882162153 (T) = (0 -12.128793561967859) / Math.Sqrt((0.33761072694985805 / (299)) + (0.0014866179130211786 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.3351627438452262 = (18.24325193825221 - 12.128793561967859) / 18.24325193825221 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Memory.ReadOnlySpan.IndexOfString(input: "だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだすだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ", value: "す", comparisonType: Ordinal)

```log

Description of detection logic

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 14.471004368536958 < 17.74290639527285.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/5/2022 6:57:51 AM, 8/17/2022 10:14:53 AM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 56.76572203512102 (T) = (0 -14.533126791125373) / Math.Sqrt((0.6493278346720135 / (299)) + (0.003811589871427708 / (4))) is greater than 1.9678765312856872 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (4) - 2, .975) and 0.17920713003128447 = (17.70620496700867 - 14.533126791125373) / 17.70620496700867 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "x", comparisonType: OrdinalIgnoreCase)

```log

Description of detection logic

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 22.278945854871235 < 27.653438226214508.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/13/2022 3:46:07 PM, 8/18/2022 11:13:04 AM falls between 8/9/2022 9:33:37 PM and 8/18/2022 11:13:04 AM.
IsImprovementStdDev: Marked as improvement because 16.334985832944017 (T) = (0 -24.56936816810916) / Math.Sqrt((2.8821523964010938 / (299)) + (2.008524917890793 / (23))) is greater than 1.9674049737480528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (23) - 2, .975) and 0.1715209295815432 = (29.65599137670359 - 24.56936816810916) / 29.65599137670359 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions