Description
Run Information
Name | Value |
---|---|
Architecture | arm64 |
OS | Windows 10.0.19041 |
Queue | SurfaceWindows |
Baseline | 195bf987887ea645a747ff0586440f7920c47b01 |
Compare | 63a7a13190448f1ba5b3b449f1b9628d042d209d |
Diff | Diff |
Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Tests.Perf_UInt16
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
Parse - Duration of single invocation | 16.28 ns | 18.62 ns | 1.14 | 0.10 | False | |||||
TryParse - Duration of single invocation | 16.24 ns | 18.21 ns | 1.12 | 0.14 | False | |||||
TryParse - Duration of single invocation | 15.89 ns | 18.28 ns | 1.15 | 0.13 | False | |||||
Parse - Duration of single invocation | 9.23 ns | 11.22 ns | 1.22 | 0.34 | False |
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_UInt16*'
Payloads
Histogram
System.Tests.Perf_UInt16.Parse(value: "65535")
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.62394193716033 > 17.127759243212203.
IsChangePoint: Marked as a change because one of 4/17/2023 8:43:19 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -8.318939031379447 (T) = (0 -17.82697130136037) / Math.Sqrt((0.05508051471060187 / (12)) + (0.6734136168345647 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.09595143934936938 = (16.26620547343198 - 17.82697130136037) / 16.26620547343198 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Tests.Perf_UInt16.TryParse(value: "65535")
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.2095368053242 > 17.05928072428638.
IsChangePoint: Marked as a change because one of 4/17/2023 8:43:19 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -6.71689479033339 (T) = (0 -17.716617191095004) / Math.Sqrt((0.3311296271862489 / (12)) + (0.13083458887424104 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.074615656168534 = (16.486468524255777 - 17.716617191095004) / 16.486468524255777 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Tests.Perf_UInt16.TryParse(value: "12345")
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.282743691581814 > 16.74008429125149.
IsChangePoint: Marked as a change because one of 4/17/2023 8:43:19 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -10.164787673419013 (T) = (0 -17.60702126753151) / Math.Sqrt((0.1664233449759519 / (12)) + (0.22430788564947826 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.09836655652189782 = (16.030186974452445 - 17.60702126753151) / 16.030186974452445 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Tests.Perf_UInt16.Parse(value: "0")
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 11.217521798223327 > 9.611071100466296.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -5.59610658917433 (T) = (0 -10.5944555227979) / Math.Sqrt((0.41262416121122647 / (12)) + (0.3373640814476946 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.13350470188107558 = (9.346635708891345 - 10.5944555227979) / 9.346635708891345 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Name | Value |
---|---|
Architecture | arm64 |
OS | Windows 10.0.19041 |
Queue | SurfaceWindows |
Baseline | 195bf987887ea645a747ff0586440f7920c47b01 |
Compare | 63a7a13190448f1ba5b3b449f1b9628d042d209d |
Diff | Diff |
Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
FixedTimeEquals_256Bit_AllBitsDifferent - Duration of single invocation | 191.45 ns | 220.95 ns | 1.15 | 0.01 | True | |||||
FixedTimeEquals_256Bit_VersusZero - Duration of single invocation | 191.73 ns | 210.96 ns | 1.10 | 0.01 | True | |||||
FixedTimeEquals_256Bit_CascadingErrors - Duration of single invocation | 191.25 ns | 227.62 ns | 1.19 | 0.01 | True |
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals*'
Payloads
Histogram
System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals.FixedTimeEquals_256Bit_AllBitsDifferent
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 220.9496243503409 > 201.14268162707882.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -18.380717668366124 (T) = (0 -210.67609518966964) / Math.Sqrt((0.04493579477787279 / (12)) + (24.7413371669378 / (23))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (23) - 2, .025) and -0.09968195980516305 = (191.57911368028292 - 210.67609518966964) / 191.57911368028292 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals.FixedTimeEquals_256Bit_VersusZero
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 210.95884315110334 > 200.84268477743873.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -23.307599181947438 (T) = (0 -209.2842994676127) / Math.Sqrt((0.5087435200225127 / (12)) + (12.387912346858467 / (23))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (23) - 2, .025) and -0.09276305163399115 = (191.5184624467978 - 209.2842994676127) / 191.5184624467978 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
System.Security.Cryptography.Primitives.Tests.Performance.Perf_FixedTimeEquals.FixedTimeEquals_256Bit_CascadingErrors
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 227.61528655772904 > 201.03064465759493.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -14.176902992230634 (T) = (0 -209.43050242902368) / Math.Sqrt((0.31834512194663955 / (12)) + (35.11761871971109 / (23))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (23) - 2, .025) and -0.09214246487460322 = (191.7611567764375 - 209.43050242902368) / 191.7611567764375 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Name | Value |
---|---|
Architecture | arm64 |
OS | Windows 10.0.19041 |
Queue | SurfaceWindows |
Baseline | 195bf987887ea645a747ff0586440f7920c47b01 |
Compare | 63a7a13190448f1ba5b3b449f1b9628d042d209d |
Diff | Diff |
Configs | CompilationMode:tiered, RunKind:micro |
Regressions 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 | 27.99 ns | 31.21 ns | 1.12 | 0.01 | True | |||||
IndexOfString - Duration of single invocation | 19.96 ns | 33.38 ns | 1.67 | 0.00 | True | |||||
IndexOfString - Duration of single invocation | 15.94 ns | 19.39 ns | 1.22 | 0.00 | True | |||||
IndexOfString - Duration of single invocation | 22.62 ns | 25.89 ns | 1.14 | 0.00 | True |
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.ReadOnlySpan*'
Payloads
Histogram
System.Memory.ReadOnlySpan.IndexOfString(input: "ABCDE", value: "c", comparisonType: InvariantCultureIgnoreCase)
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 31.211358992375782 > 29.826838836477663.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -59.914000068733124 (T) = (0 -31.278107083779425) / Math.Sqrt((0.026771238592144586 / (12)) + (0.0037217256261668458 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.10356183261359846 = (28.34286775730776 - 31.278107083779425) / 28.34286775730776 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "x", comparisonType: OrdinalIgnoreCase)
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 33.38006803806828 > 20.939506728047114.
IsChangePoint: Marked as a change because one of 5/1/2023 10:17:01 AM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -55.218982893159264 (T) = (0 -34.381013373593454) / Math.Sqrt((0.0009892028008216655 / (28)) + (0.47950418353956553 / (7))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (28) + (7) - 2, .025) and -0.7255185058000226 = (19.925033117887644 - 34.381013373593454) / 19.925033117887644 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
System.Memory.ReadOnlySpan.IndexOfString(input: "StrIng", value: "string", comparisonType: OrdinalIgnoreCase)
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 19.387679546683593 > 16.736094423314672.
IsChangePoint: Marked as a change because one of 5/1/2023 10:17:01 AM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -73.67122324722857 (T) = (0 -19.351762813360242) / Math.Sqrt((0.04654849368864218 / (27)) + (0.0010306191422304663 / (7))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (7) - 2, .025) and -0.19714728071343357 = (16.1648972729802 - 19.351762813360242) / 16.1648972729802 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
System.Memory.ReadOnlySpan.IndexOfString(input: "More Test's", value: "Tests", comparisonType: OrdinalIgnoreCase)
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 25.890850228671663 > 23.679144594796025.
IsChangePoint: Marked as a change because one of 5/1/2023 10:17:01 AM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -55.35362516452178 (T) = (0 -25.81690644429964) / Math.Sqrt((0.06310260226533439 / (27)) + (0.00394717421138148 / (7))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (7) - 2, .025) and -0.13056012323684574 = (22.835500663498237 - 25.81690644429964) / 22.835500663498237 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Name | Value |
---|---|
Architecture | arm64 |
OS | Windows 10.0.19041 |
Queue | SurfaceWindows |
Baseline | 195bf987887ea645a747ff0586440f7920c47b01 |
Compare | 63a7a13190448f1ba5b3b449f1b9628d042d209d |
Diff | Diff |
Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.IO.Tests.Perf_Path
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
HasExtension - Duration of single invocation | 5.13 ns | 6.25 ns | 1.22 | 0.38 | False | |||||
GetExtension - Duration of single invocation | 19.06 ns | 22.28 ns | 1.17 | 0.16 | False | |||||
GetFileName - Duration of single invocation | 31.58 ns | 34.24 ns | 1.08 | 0.05 | False | |||||
Combine - Duration of single invocation | 3.33 ns | 4.80 ns | 1.44 | 0.61 | False | |||||
GetFileNameWithoutExtension - Duration of single invocation | 39.40 ns | 42.54 ns | 1.08 | 0.05 | False |
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.Perf_Path*'
Payloads
Histogram
System.IO.Tests.Perf_Path.HasExtension
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 6.247528349265935 > 5.341030762321178.
IsChangePoint: Marked as a change because one of 1/27/2023 3:43:27 AM, 2/1/2023 6:25:50 PM, 3/15/2023 9:07:40 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -5.781618330433489 (T) = (0 -5.534214633643079) / Math.Sqrt((0.02135413771984771 / (12)) + (0.11957818313224726 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.09737885591886102 = (5.043121255520411 - 5.534214633643079) / 5.043121255520411 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.IO.Tests.Perf_Path.GetExtension
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 22.27594573670113 > 20.10160443284385.
IsChangePoint: Marked as a change because one of 3/16/2023 8:14:39 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -3.120896093595543 (T) = (0 -20.56403143711302) / Math.Sqrt((0.9721117661519345 / (11)) + (0.5193587193151544 / (23))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (11) + (23) - 2, .025) and -0.05324426428168011 = (19.524465629193653 - 20.56403143711302) / 19.524465629193653 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.IO.Tests.Perf_Path.GetFileName
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 34.238771818190095 > 33.58905321309849.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -15.407895725301563 (T) = (0 -34.39018659188685) / Math.Sqrt((0.21424659712904298 / (11)) + (0.15101569103261683 / (23))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (11) + (23) - 2, .025) and -0.07793755249752722 = (31.903690999730472 - 34.39018659188685) / 31.903690999730472 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.IO.Tests.Perf_Path.Combine
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 4.804493899982922 > 3.8435686987265347.
IsChangePoint: Marked as a change because one of 3/15/2023 4:14:49 PM, 4/11/2023 8:14:56 PM, 4/25/2023 1:02:54 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -4.391136965522186 (T) = (0 -5.04430389706627) / Math.Sqrt((0.4397494602567275 / (11)) + (0.47894597037782166 / (23))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (11) + (23) - 2, .025) and -0.2733176862449372 = (3.9615438877175393 - 5.04430389706627) / 3.9615438877175393 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.IO.Tests.Perf_Path.GetFileNameWithoutExtension
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 42.543542129591124 > 40.501019048684824.
IsChangePoint: Marked as a change because one of 3/3/2023 4:19:26 AM, 3/10/2023 4:14:40 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -17.107194328456785 (T) = (0 -42.52825255014681) / Math.Sqrt((0.33375946696401737 / (12)) + (0.44539242533865336 / (23))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (23) - 2, .025) and -0.09573659915099779 = (38.81247791038347 - 42.52825255014681) / 38.81247791038347 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Name | Value |
---|---|
Architecture | arm64 |
OS | Windows 10.0.19041 |
Queue | SurfaceWindows |
Baseline | 195bf987887ea645a747ff0586440f7920c47b01 |
Compare | 63a7a13190448f1ba5b3b449f1b9628d042d209d |
Diff | Diff |
Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Reflection.Attributes
Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
---|---|---|---|---|---|---|---|---|---|---|
GetCustomAttributesClassMiss - Duration of single invocation | 112.85 ns | 126.14 ns | 1.12 | 0.05 | False | |||||
GetCustomAttributesMethodBaseMiss - Duration of single invocation | 114.51 ns | 131.42 ns | 1.15 | 0.06 | False | |||||
IsDefinedMethodOverrideMiss - Duration of single invocation | 435.45 ns | 460.91 ns | 1.06 | 0.05 | False | |||||
GetCustomAttributesClassMissInherit - Duration of single invocation | 225.45 ns | 242.07 ns | 1.07 | 0.07 | False | |||||
GetCustomAttributesMethodBaseMissInherit - Duration of single invocation | 163.60 ns | 174.55 ns | 1.07 | 0.04 | False | |||||
IsDefinedMethodOverrideMissInherit - Duration of single invocation | 436.09 ns | 461.93 ns | 1.06 | 0.06 | False |
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Reflection.Attributes*'
Payloads
Histogram
System.Reflection.Attributes.GetCustomAttributesClassMiss
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 126.14223025296853 > 118.52900853891653.
IsChangePoint: Marked as a change because one of 2/24/2023 9:01:57 AM, 3/1/2023 1:48:25 AM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -26.719163608705994 (T) = (0 -130.97635042218496) / Math.Sqrt((1.2282543432336968 / (12)) + (6.887999747633474 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.15139490858823929 = (113.75449851761034 - 130.97635042218496) / 113.75449851761034 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Reflection.Attributes.GetCustomAttributesMethodBaseMiss
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 131.4221733096605 > 121.01156054480323.
IsChangePoint: Marked as a change because one of 4/12/2023 8:39:35 PM, 4/17/2023 8:43:19 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -23.70859606566864 (T) = (0 -137.58555461135202) / Math.Sqrt((1.3319993031664883 / (11)) + (18.26377494210067 / (23))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (11) + (23) - 2, .025) and -0.19738667782011177 = (114.90486503644068 - 137.58555461135202) / 114.90486503644068 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Reflection.Attributes.IsDefinedMethodOverrideMiss
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 460.9089989290696 > 457.0905188971295.
IsChangePoint: Marked as a change because one of 2/7/2023 2:48:42 AM, 3/10/2023 12:53:36 AM, 3/15/2023 2:24:48 AM, 4/1/2023 5:53:03 AM, 4/18/2023 7:42:00 PM, 4/26/2023 12:55:36 AM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -7.7689771321664365 (T) = (0 -465.59022819981) / Math.Sqrt((6.427122425628869 / (13)) + (278.4733948467291 / (21))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (13) + (21) - 2, .025) and -0.06596826507233933 = (436.77681921254367 - 465.59022819981) / 436.77681921254367 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Reflection.Attributes.GetCustomAttributesClassMissInherit
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 242.0747642257093 > 235.39252417004565.
IsChangePoint: Marked as a change because one of 1/30/2023 1:22:46 AM, 2/4/2023 3:18:53 AM, 3/9/2023 9:18:02 PM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -16.28507119667129 (T) = (0 -245.82443065380477) / Math.Sqrt((4.338995570394197 / (12)) + (26.286602705526633 / (22))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (22) - 2, .025) and -0.09009338780227705 = (225.50767980476257 - 245.82443065380477) / 225.50767980476257 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Reflection.Attributes.GetCustomAttributesMethodBaseMissInherit
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 174.5529286984179 > 170.4554003349467.
IsChangePoint: Marked as a change because one of 1/28/2023 1:22:52 PM, 2/4/2023 3:18:53 AM, 2/28/2023 5:58:27 PM, 3/4/2023 1:07:20 AM, 4/25/2023 6:46:56 PM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -13.145917653344503 (T) = (0 -174.06399781616923) / Math.Sqrt((3.887473839605613 / (12)) + (9.252881390834936 / (23))) is less than -2.034515297446192 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (12) + (23) - 2, .025) and -0.06878893287195068 = (162.8609657740753 - 174.06399781616923) / 162.8609657740753 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
System.Reflection.Attributes.IsDefinedMethodOverrideMissInherit
Description of detection logic
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 461.9341276293059 > 457.9954578792807.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 3/10/2023 12:53:36 AM, 3/15/2023 2:24:48 AM, 4/1/2023 8:54:51 PM, 4/10/2023 1:33:42 PM, 4/26/2023 5:34:01 AM, 5/4/2023 2:44:24 AM falls between 4/25/2023 1:02:54 PM and 5/4/2023 2:44:24 AM.
IsRegressionStdDev: Marked as regression because -7.475884182902106 (T) = (0 -464.4150232531295) / Math.Sqrt((20.39502063565609 / (14)) + (228.5540216279481 / (20))) is less than -2.03693334345674 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (14) + (20) - 2, .025) and -0.06132510927430049 = (437.58035986794033 - 464.4150232531295) / 437.58035986794033 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository