Closed
Description
Run Information
Architecture | arm64 |
---|---|
OS | ubuntu 20.04 |
Baseline | a33b9d82d45edd2ca47db710ff06a87aa0eb9cbd |
Compare | 3cf8f49b111ebb809607555bba70465f67157533 |
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 |
---|---|---|---|---|---|---|---|---|---|---|
Join_Enumerable - Duration of single invocation | 653.40 ns | 333.91 ns | 0.51 | 0.17 | False | |||||
ToUpperInvariant - Duration of single invocation | 57.48 ns | 19.78 ns | 0.34 | 0.16 | False | |||||
ToLower - Duration of single invocation | 130.95 ns | 94.83 ns | 0.72 | 0.05 | False | |||||
Join_List - Duration of single invocation | 158.77 ns | 78.26 ns | 0.49 | 0.03 | False | |||||
ToLower - Duration of single invocation | 63.53 ns | 30.39 ns | 0.48 | 0.11 | False | |||||
ToLowerInvariant - Duration of single invocation | 54.30 ns | 20.45 ns | 0.38 | 0.19 | False | |||||
ToLowerInvariant - Duration of single invocation | 54.93 ns | 20.43 ns | 0.37 | 0.19 | False | |||||
Join_Array - Duration of single invocation | 130.02 ns | 73.53 ns | 0.57 | 0.03 | False | |||||
TrimEnd - Duration of single invocation | 39.88 ns | 16.30 ns | 0.41 | 0.32 | False | |||||
ToLower - Duration of single invocation | 65.67 ns | 30.59 ns | 0.47 | 0.07 | False | |||||
ToUpperInvariant - Duration of single invocation | 120.35 ns | 83.66 ns | 0.70 | 0.08 | False | |||||
ToLowerInvariant - Duration of single invocation | 120.16 ns | 83.52 ns | 0.70 | 0.07 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_String*'
Payloads
Histogram
System.Tests.Perf_String.Join_Enumerable
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 333.9072620074223 < 623.7721058774449.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 18.39681126448772 (T) = (0 -337.007138172066) / Math.Sqrt((3756.7589035735923 / (283)) + (29.81654583945833 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.17024461974199068 = (406.15239887600956 - 337.007138172066) / 406.15239887600956 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToUpperInvariant(s: "test")
```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 19.782004299615515 < 54.08922689898475.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.625792123874094 (T) = (0 -20.264307652610814) / Math.Sqrt((45.239788075819895 / (283)) + (0.21430480593568896 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.20244853663194287 = (25.408150549977943 - 20.264307652610814) / 25.408150549977943 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLower(s: "This is a much longer piece of text that might benefit more from vectorization.")
```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 94.82964681651482 < 125.55030587021281.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 38.550112433435416 (T) = (0 -94.54401471693298) / Math.Sqrt((103.76388905074424 / (284)) + (0.4924120241298504 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.2007452839516677 = (118.29021814769716 - 94.54401471693298) / 118.29021814769716 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.Join_List
```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 78.25578733163074 < 151.03846347997234.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 22.074419942035153 (T) = (0 -78.87134227048571) / Math.Sqrt((210.66821880467242 / (283)) + (0.6641175198461 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.19648739776411078 = (98.1581894932511 - 78.87134227048571) / 98.1581894932511 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLower(s: "TEST")
```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.389351006912445 < 63.03714167342331.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.940834104936117 (T) = (0 -30.654494828191233) / Math.Sqrt((42.19592962885175 / (284)) + (0.43722945463564766 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.14487810895607622 = (35.848099726190554 - 30.654494828191233) / 35.848099726190554 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLowerInvariant(s: "TEST")
```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.445663891143717 < 52.066405693332655.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.454475761125858 (T) = (0 -20.208970095677035) / Math.Sqrt((43.21160011474982 / (284)) + (0.2834081786850016 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.19788692582233705 = (25.194664874893782 - 20.208970095677035) / 25.194664874893782 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLowerInvariant(s: "TeSt")
```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.429994861331593 < 51.89073373535458.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.255816283235802 (T) = (0 -20.269258998741094) / Math.Sqrt((44.01215288790112 / (284)) + (0.26413718596912045 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.19598425760610408 = (25.21002752805674 - 20.269258998741094) / 25.21002752805674 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.Join_Array
```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 73.53201039369002 < 124.25867043760647.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 27.39272050277857 (T) = (0 -72.96918488357582) / Math.Sqrt((115.85069532602093 / (283)) + (0.5534794471528437 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.19664745012327883 = (90.83083746329471 - 72.96918488357582) / 90.83083746329471 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.TrimEnd(s: "Test ")
```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 16.299595129364306 < 38.664034711270276.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 17.026332883990246 (T) = (0 -16.712878642938467) / Math.Sqrt((22.55329807831837 / (283)) + (0.24409298043404948 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.23071907624506288 = (21.72532572543361 - 16.712878642938467) / 21.72532572543361 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLower(s: "TeSt")
```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.58885162206132 < 62.35866669641114.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.960440760322056 (T) = (0 -30.743190660298314) / Math.Sqrt((41.435964219766 / (283)) + (0.39004898450103687 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.14335029549300785 = (35.887703571894924 - 30.743190660298314) / 35.887703571894924 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToUpperInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")
```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 83.6578049868783 < 113.87045878917574.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 39.106163524565225 (T) = (0 -83.59276789166339) / Math.Sqrt((103.87038774787617 / (283)) + (0.317421354556362 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.2229384399232639 = (107.57547688166233 - 83.59276789166339) / 107.57547688166233 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Tests.Perf_String.ToLowerInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")
```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 83.52185406199922 < 114.01059304601556.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 39.13291169411014 (T) = (0 -83.69276307003122) / Math.Sqrt((99.1127453133418 / (284)) + (0.29815919069644314 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.2184898952519759 = (107.09108245889615 - 83.69276307003122) / 107.09108245889615 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 | ubuntu 20.04 |
Baseline | a33b9d82d45edd2ca47db710ff06a87aa0eb9cbd |
Compare | 3cf8f49b111ebb809607555bba70465f67157533 |
Diff | Diff |
Improvements in System.Memory.MemoryMarshal<Int32>
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
CastToInt - Duration of single invocation | 14.99 ns | 0.25 ns | 0.02 | 0.78 | False | |||||
AsBytes - Duration of single invocation | 15.40 ns | 0.62 ns | 0.04 | 0.65 | False | |||||
CastToByte - Duration of single invocation | 15.73 ns | 0.45 ns | 0.03 | 0.68 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Memory.MemoryMarshal<Int32>*'
Payloads
Histogram
System.Memory.MemoryMarshal<Int32>.CastToInt
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 0.245100900835234 < 14.246467817963541.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 3.5898549466857976 (T) = (0 -0.2239969521001966) / Math.Sqrt((8.747708693355829 / (284)) + (0.00289575495272233 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.73797782687585 = (0.8548778503339236 - 0.2239969521001966) / 0.8548778503339236 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.MemoryMarshal<Int32>.AsBytes
```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 0.6189854337406197 < 14.950121307252713.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 5.886838754041036 (T) = (0 -0.5885285427532173) / Math.Sqrt((8.763463790133104 / (284)) + (0.0016916117424943483 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.6374792536136435 = (1.6234341030678365 - 0.5885285427532173) / 1.6234341030678365 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Memory.MemoryMarshal<Int32>.CastToByte
```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 0.4481353045015596 < 15.236663814436225.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 6.744578516563523 (T) = (0 -0.4144010857852918) / Math.Sqrt((8.98670261572162 / (284)) + (0.001919294340864822 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.7434373440161772 = (1.6152042244660163 - 0.4144010857852918) / 1.6152042244660163 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 | a33b9d82d45edd2ca47db710ff06a87aa0eb9cbd |
Compare | 3cf8f49b111ebb809607555bba70465f67157533 |
Diff | Diff |
Improvements in System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
Ctor - Duration of single invocation | 59.56 μs | 37.86 μs | 0.64 | 0.32 | False | |||||
Ctor - Duration of single invocation | 41.11 μs | 29.16 μs | 0.71 | 0.25 | 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_Industry_Mariomkas*'
Payloads
Histogram
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas.Ctor(Pattern: "[\w]+://[^/\s?#]+[^\s?#]+(?:?[^\s#])?(?:#[^\s])?", Options: 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 37.862508114998235 < 56.44584357383566.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 20.525917903686064 (T) = (0 -39248.62403692026) / Math.Sqrt((16958217.251173552 / (284)) + (1591521.029595961 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.14501462579544258 = (45905.6087052197 - 39248.62403692026) / 45905.6087052197 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas.Ctor(Pattern: "[\w\.+-]+@[\w\.-]+\.[\w\.-]+", 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 29.164148769901512 < 38.7753500529256.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 20.196204875430716 (T) = (0 -29492.31207384367) / Math.Sqrt((4878441.6909913365 / (283)) + (545986.6939373435 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.11039424077990546 = (33152.11459478318 - 29492.31207384367) / 33152.11459478318 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 | a33b9d82d45edd2ca47db710ff06a87aa0eb9cbd |
Compare | 3cf8f49b111ebb809607555bba70465f67157533 |
Diff | Diff |
Improvements in System.Numerics.Tests.Perf_BigInteger
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
ModPow - Duration of single invocation | 5.99 ms | 2.56 ms | 0.43 | 0.01 | False | |||||
ToStringD - Duration of single invocation | 68.64 ns | 41.57 ns | 0.61 | 0.19 | False | |||||
ModPow - Duration of single invocation | 348.79 μs | 133.10 μs | 0.38 | 0.03 | False | |||||
ToStringX - Duration of single invocation | 101.75 ns | 57.52 ns | 0.57 | 0.05 | False | |||||
Parse - Duration of single invocation | 167.39 ns | 151.01 ns | 0.90 | 0.08 | False | |||||
ToStringX - Duration of single invocation | 111.15 ns | 68.26 ns | 0.61 | 0.01 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Numerics.Tests.Perf_BigInteger*'
Payloads
Histogram
System.Numerics.Tests.Perf_BigInteger.ModPow(arguments: 16384,16384,64 bits)
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 2.557793114874815 < 5.746440592549362.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 3.7682488367836955 (T) = (0 -2525427.2111348067) / Math.Sqrt((509822189553.914 / (283)) + (267669021.86147717 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.059678398719712 = (2685705.8347870875 - 2525427.2111348067) / 2685705.8347870875 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Numerics.Tests.Perf_BigInteger.ToStringD(numberString: 123)
```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 41.56894919810358 < 65.58233974623856.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 16.479994479239057 (T) = (0 -42.19147938457414) / Math.Sqrt((25.405396483936084 / (284)) + (0.6307401773574294 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.11351679527318496 = (47.59422305984484 - 42.19147938457414) / 47.59422305984484 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Numerics.Tests.Perf_BigInteger.ModPow(arguments: 1024,1024,64 bits)
```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 133.0997433262712 < 332.3701098975695.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 3.949718371660405 (T) = (0 -133863.07280900772) / Math.Sqrt((1854480250.3715558 / (283)) + (1237274.3653873 / (35))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (283) + (35) - 2, .975) and 0.07040225534896835 = (144001.07313003382 - 133863.07280900772) / 144001.07313003382 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Numerics.Tests.Perf_BigInteger.ToStringX(numberString: 123)
```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.52259554689382 < 96.69256939906028.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 12.942525350298009 (T) = (0 -58.07086367009216) / Math.Sqrt((66.49150261158395 / (284)) + (0.6262921900148791 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.10062757581429782 = (64.56820568261242 - 58.07086367009216) / 64.56820568261242 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Numerics.Tests.Perf_BigInteger.Parse(numberString: 123)
```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 151.011264698202 < 160.7407650136913.
IsChangePoint: Marked as a change because one of 5/24/2022 3:42:52 PM, 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 15.736189377527518 (T) = (0 -149.0808542165411) / Math.Sqrt((54.701601812296765 / (284)) + (3.6975517478391375 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.05450439528175778 = (157.67482521610157 - 149.0808542165411) / 157.67482521610157 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```#### System.Numerics.Tests.Perf_BigInteger.ToStringX(numberString: -2147483648)
```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 68.26097130763263 < 105.59222622813036.
IsChangePoint: Marked as a change because one of 6/22/2022 5:33:38 PM, 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/14/2022 8:56:55 AM falls between 7/5/2022 7:51:46 PM and 7/14/2022 8:56:55 AM.
IsImprovementStdDev: Marked as improvement because 14.437303977048229 (T) = (0 -68.76607134037515) / Math.Sqrt((61.256627066621725 / (284)) + (0.3576962605392567 / (35))) is greater than 1.9674756580274855 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (284) + (35) - 2, .975) and 0.09073450621078104 = (75.62815460400186 - 68.76607134037515) / 75.62815460400186 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