-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Description
Run Information
Architecture | arm64 |
---|---|
OS | Windows 10.0.19041 |
Baseline | 0a76d1ec9906951a3486ee4ca97f1035cc7fe475 |
Compare | e05944dd74118db06d6987fe2724813950725737 |
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 | 24.04 ns | 22.35 ns | 0.93 | 0.01 | False | |||||
IndexOfString - Duration of single invocation | 25.87 ns | 20.58 ns | 0.80 | 0.01 | False | |||||
IndexOfString - Duration of single invocation | 16.26 ns | 12.03 ns | 0.74 | 0.03 | False | |||||
IndexOfString - Duration of single invocation | 17.27 ns | 11.59 ns | 0.67 | 0.01 | False | |||||
IndexOfString - Duration of single invocation | 18.50 ns | 13.76 ns | 0.74 | 0.02 | False | |||||
IndexOfString - Duration of single invocation | 67.69 ns | 58.83 ns | 0.87 | 0.01 | False | |||||
IndexOfString - Duration of single invocation | 18.16 ns | 15.68 ns | 0.86 | 0.01 | False | |||||
IndexOfString - Duration of single invocation | 33.74 ns | 26.23 ns | 0.78 | 0.03 | False | |||||
IndexOfString - Duration of single invocation | 67.70 ns | 58.76 ns | 0.87 | 0.01 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Memory.ReadOnlySpan*'
Payloads
Histogram
System.Memory.ReadOnlySpan.IndexOfString(input: "More Test's", value: "Tests", comparisonType: OrdinalIgnoreCase)
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 we could not find enough baseline builds for window checking.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 31.09374104131751 (T) = (0 -22.407729448693846) / Math.Sqrt((1.0694174164541863 / (299)) + (0.002664102257773753 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.0774726268671082 = (24.289500887759534 - 22.407729448693846) / 24.289500887759534 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 20.577569989703193 < 24.57323402699755.
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/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 92.1397908046978 (T) = (0 -20.596215167560057) / Math.Sqrt((3.456874360442512 / (299)) + (0.0020442965888519764 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.32539563551308714 = (30.530806279655515 - 20.596215167560057) / 30.530806279655515 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "Hello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello Worldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylong!xyz", value: "w", 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 12.027728086458927 < 15.462580565490073.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 44.81752576350333 (T) = (0 -12.028407510954441) / Math.Sqrt((3.0015019454526146 / (299)) + (0.0015938298509142002 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.27233993352869657 = (16.530256455166903 - 12.028407510954441) / 16.530256455166903 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "Hello Worldbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbba!", value: "y", 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 11.593879425477311 < 16.412428553611466.
IsChangePoint: Marked as a change because one of 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 142.31101592149867 (T) = (0 -11.615840916997533) / Math.Sqrt((0.5096425029666476 / (299)) + (0.0011322195351762992 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.3381998207111052 = (17.551885418766084 - 11.615840916997533) / 17.551885418766084 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 13.760989951532185 < 17.576335967018.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 8/5/2022 6:57:51 AM, 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 50.97311927345418 (T) = (0 -13.691869663712316) / Math.Sqrt((1.1936072375916171 / (299)) + (0.00254496471830994 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.19195259432806405 = (16.94438911331789 - 13.691869663712316) / 16.94438911331789 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだxだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ", value: "x", 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 58.82849256843457 < 64.30737534098908.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 23.16214979599196 (T) = (0 -58.7771245163856) / Math.Sqrt((41.795293564982394 / (299)) + (0.0011748272199045542 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.12842779416281028 = (67.4380437131163 - 58.7771245163856) / 67.4380437131163 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "StrIng", value: "string", 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 15.684394347779676 < 17.3083747201366.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 44.760015801230885 (T) = (0 -15.666270071515667) / Math.Sqrt((1.1580826273806937 / (299)) + (0.0002898708614281951 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.15112199812009108 = (18.455266877951185 - 15.666270071515667) / 18.455266877951185 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "Hello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello Worldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylong!xyz", 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 26.22601525583158 < 32.04796140441524.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 40.76126589952397 (T) = (0 -26.307180473769765) / Math.Sqrt((7.810436262209558 / (299)) + (0.00852816508147894 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.20108518672957512 = (32.92864274988107 - 26.307180473769765) / 32.92864274988107 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "X", 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 58.755255910213684 < 64.3337314385815.
IsChangePoint: Marked as a change because one of 5/31/2022 5:02:26 PM, 6/6/2022 8:15:49 PM, 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 23.435885225969955 (T) = (0 -58.77370805828662) / Math.Sqrt((39.757046642217425 / (299)) + (0.0015798400622225681 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.12696448530022836 = (67.32109641438622 - 58.77370805828662) / 67.32109641438622 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
Architecture | arm64 |
---|---|
OS | Windows 10.0.19041 |
Baseline | 0a76d1ec9906951a3486ee4ca97f1035cc7fe475 |
Compare | e05944dd74118db06d6987fe2724813950725737 |
Diff | Diff |
Improvements in System.IO.Tests.Perf_FileStream
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
OpenClose - Duration of single invocation | 22.28 μs | 17.68 μs | 0.79 | 0.55 | False | |||||
Read - Duration of single invocation | 4.35 ms | 3.84 ms | 0.88 | 0.04 | False | |||||
Read_NoBuffering - Duration of single invocation | 1.15 ms | 1.06 ms | 0.92 | 0.03 | False | |||||
ReadAsync_NoBuffering - Duration of single invocation | 49.78 ms | 43.46 ms | 0.87 | 0.59 | False | |||||
Read - Duration of single invocation | 4.19 ms | 3.66 ms | 0.87 | 0.10 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.IO.Tests.Perf_FileStream*'
Payloads
Histogram
System.IO.Tests.Perf_FileStream.OpenClose(fileSize: 1024, options: None)
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 17.683044814754897 < 20.158349408462072.
IsChangePoint: Marked as a change because one of 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 6.626061779384222 (T) = (0 -19581.44745253141) / Math.Sqrt((2940799.1812381214 / (299)) + (1670919.113722582 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.07870495072852496 = (21254.263189643396 - 19581.44745253141) / 21254.263189643396 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.IO.Tests.Perf_FileStream.Read(fileSize: 1048576, userBufferSize: 512, options: Asynchronous)
```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 3.8375446875 < 4.089969291666666.
IsChangePoint: Marked as a change because one of 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 11.770764411986075 (T) = (0 -4090985.525793142) / Math.Sqrt((4627678979.56503 / (299)) + (12946618486.840754 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.05649623277796258 = (4335950.388240897 - 4090985.525793142) / 4335950.388240897 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.IO.Tests.Perf_FileStream.Read_NoBuffering(fileSize: 1048576, userBufferSize: 16384, options: Asynchronous)
```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.0609505952380953 < 1.097761110859007.
IsChangePoint: Marked as a change because one of 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 10.03913948948346 (T) = (0 -1082602.5629225324) / Math.Sqrt((270986985.9634675 / (299)) + (1234650932.0172281 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.05587702267286243 = (1146675.368485828 - 1082602.5629225324) / 1146675.368485828 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.IO.Tests.Perf_FileStream.ReadAsync_NoBuffering(fileSize: 104857600, userBufferSize: 16384, options: None)
```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 43.46163035714286 < 46.984471218749995.
IsChangePoint: Marked as a change because one of 6/23/2022 8:35:19 AM, 6/25/2022 6:06:34 PM, 8/17/2022 2:33:27 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 5.923892798137265 (T) = (0 -44964218.13543107) / Math.Sqrt((21632223299879.67 / (299)) + (12630237729605.348 / (33))) is greater than 1.9671786747533526 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (33) - 2, .975) and 0.08162195061166311 = (48960466.95081441 - 44964218.13543107) / 48960466.95081441 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.IO.Tests.Perf_FileStream.Read(fileSize: 1048576, userBufferSize: 4096, options: Asynchronous)
```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 3.6557917410714285 < 4.0004950260416665.
IsChangePoint: Marked as a change because one of 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 14.150266202163717 (T) = (0 -3855213.8328299173) / Math.Sqrt((9052525960.932926 / (299)) + (13634575778.331064 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.07371507893545842 = (4162017.2639745413 - 3855213.8328299173) / 4162017.2639745413 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 | Windows 10.0.19041 |
Baseline | 0a76d1ec9906951a3486ee4ca97f1035cc7fe475 |
Compare | e05944dd74118db06d6987fe2724813950725737 |
Diff | Diff |
Improvements in System.Text.RegularExpressions.Tests.Perf_Regex_Common
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
CtorInvoke - Duration of single invocation | 398.70 μs | 349.73 μs | 0.88 | 0.03 | False | |||||
OneNodeBacktracking - Duration of single invocation | 121.36 ns | 91.86 ns | 0.76 | 0.04 | False | |||||
CtorInvoke - Duration of single invocation | 379.40 μs | 333.83 μs | 0.88 | 0.05 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.RegularExpressions.Tests.Perf_Regex_Common*'
Payloads
Histogram
System.Text.RegularExpressions.Tests.Perf_Regex_Common.CtorInvoke(Options: IgnoreCase, Compiled)
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 349.7260813492063 < 378.19247776604726.
IsChangePoint: Marked as a change because one of 5/9/2022 6:32:22 AM, 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 10.012718575252148 (T) = (0 -346793.8936664665) / Math.Sqrt((416051750.1085539 / (40)) + (9569142.380508494 / (31))) is greater than 1.9949454151066477 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (40) + (31) - 2, .975) and 0.08633044248490207 = (379561.61591904185 - 346793.8936664665) / 379561.61591904185 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Text.RegularExpressions.Tests.Perf_Regex_Common.OneNodeBacktracking(Options: Compiled)
```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 91.86429168827931 < 114.98668735247443.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 8/17/2022 10:14:53 AM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 19.56516086955591 (T) = (0 -92.43343314122248) / Math.Sqrt((666.3199971647056 / (299)) + (0.8982783100310501 / (32))) is greater than 1.9672006833568965 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (32) - 2, .975) and 0.24125411286484882 = (121.82396597921569 - 92.43343314122248) / 121.82396597921569 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Text.RegularExpressions.Tests.Perf_Regex_Common.CtorInvoke(Options: Compiled)
```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 we could not find enough baseline builds for window checking.
IsChangePoint: Marked as a change because one of 5/24/2022 3:42:52 PM, 8/17/2022 3:53:31 PM, 8/25/2022 6:55:57 AM falls between 8/16/2022 2:19:13 PM and 8/25/2022 6:55:57 AM.
IsImprovementStdDev: Marked as improvement because 80.20265277110842 (T) = (0 -332799.3104598883) / Math.Sqrt((43790630.47062601 / (299)) + (6306904.554792458 / (31))) is greater than 1.9672228266464409 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (31) - 2, .975) and 0.12476841974686655 = (380241.43320289755 - 332799.3104598883) / 380241.43320289755 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