Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Perf] Linux/arm64: 79 Improvements on 4/26/2023 12:55:36 AM #17402

Closed
performanceautofiler bot opened this issue May 4, 2023 · 4 comments
Closed

[Perf] Linux/arm64: 79 Improvements on 4/26/2023 12:55:36 AM #17402

performanceautofiler bot opened this issue May 4, 2023 · 4 comments

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented May 4, 2023

Run Information

Name Value
Architecture arm64
OS ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Memory.Span<Char>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SequenceEqual - Duration of single invocation 62.05 ns 55.40 ns 0.89 0.00 True
StartsWith - Duration of single invocation 31.44 ns 27.87 ns 0.89 0.02 False
EndsWith - Duration of single invocation 31.21 ns 28.78 ns 0.92 0.03 False
SequenceCompareTo - Duration of single invocation 8.04 ns 6.76 ns 0.84 0.06 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Char&gt;*'

Payloads

Baseline
Compare

Histogram

System.Memory.Span<Char>.SequenceEqual(Size: 512)


Description of detection logic

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.
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 55.398169266783306 < 59.174361613352545.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 85.16435726760126 (T) = (0 -54.53853341213208) / Math.Sqrt((0.4122321390792662 / (299)) + (0.1639987872153804 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.12041784788327697 = (62.00504782968205 - 54.53853341213208) / 62.00504782968205 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Memory.Span<Char>.StartsWith(Size: 512)


Description of detection logic

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.
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 27.866047561099833 < 29.901031561446338.
IsChangePoint: Marked as a change because one of 1/18/2023 3:22:13 AM, 2/9/2023 1:41:04 PM, 4/6/2023 11:23:56 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 34.49404035088565 (T) = (0 -28.362601310738235) / Math.Sqrt((0.3030202934695391 / (299)) + (0.09192967450304583 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07581006618607644 = (30.689147623251177 - 28.362601310738235) / 30.689147623251177 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Memory.Span<Char>.EndsWith(Size: 512)


Description of detection logic

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.
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 28.78483216169964 < 30.069914191240173.
IsChangePoint: Marked as a change because one of 3/16/2023 2:30:29 AM, 4/12/2023 6:21:10 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 30.169069018168457 (T) = (0 -28.721316700869338) / Math.Sqrt((0.48226247589147087 / (299)) + (0.14534914678809002 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08185300364490601 = (31.281828307328414 - 28.721316700869338) / 31.281828307328414 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Memory.Span<Char>.SequenceCompareTo(Size: 33)


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 6.756787090746246 < 7.637393351393344.
IsChangePoint: Marked as a change because one of 2/14/2023 11:21:41 AM, 3/3/2023 4:19:26 AM, 4/12/2023 8:39:35 PM, 4/28/2023 1:33:49 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 3.1056825312679637 (T) = (0 -6.418675658720651) / Math.Sqrt((0.5331228313696631 / (299)) + (0.7435400398286169 / (16))) is greater than 1.9675720194858106 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (16) - 2, .975) and 0.09607530335010393 = (7.100896438065463 - 6.418675658720651) / 7.100896438065463 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.ContainsTrue<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
HashSet - Duration of single invocation 6.56 μs 4.62 μs 0.70 0.05 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsTrue&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

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


Description of detection logic

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.
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 4.617858292312526 < 6.282917761154753.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 126.75146662466908 (T) = (0 -4743.175428865346) / Math.Sqrt((50078.98933926697 / (299)) + (1488.4809656370242 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.2860252891242838 = (6643.338141553595 - 4743.175428865346) / 6643.338141553595 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_UInt64

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryParseHex - Duration of single invocation 10.15 ns 8.80 ns 0.87 0.06 False
TryParseHex - Duration of single invocation 5.21 ns 3.49 ns 0.67 0.38 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_UInt64*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt64.TryParseHex(value: "3039")


Description of detection logic

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.
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 8.804927621511748 < 9.616312257044731.
IsChangePoint: Marked as a change because one of 1/20/2023 9:27:13 PM, 4/18/2023 2:18:01 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 51.35529418286189 (T) = (0 -8.620429400086374) / Math.Sqrt((0.20441759384668773 / (299)) + (0.05249249668415315 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.23646929824940052 = (11.290219738802541 - 8.620429400086374) / 11.290219738802541 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_UInt64.TryParseHex(value: "0")


Description of detection logic

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.
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.4901924579388233 < 5.161276260628427.
IsChangePoint: Marked as a change because one of 1/20/2023 9:27:13 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 69.57571002101743 (T) = (0 -3.363165905414924) / Math.Sqrt((0.16024279481020443 / (299)) + (0.01093855243156166 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.39019144008881984 = (5.515117573791971 - 3.363165905414924) / 5.515117573791971 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Globalization.Tests.StringSearch

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
LastIndexOf_Word_NotFound - Duration of single invocation 623.10 ns 560.17 ns 0.90 0.00 True
LastIndexOf_Word_NotFound - Duration of single invocation 622.32 ns 561.06 ns 0.90 0.00 True
LastIndexOf_Word_NotFound - Duration of single invocation 622.54 ns 560.03 ns 0.90 0.01 True
LastIndexOf_Word_NotFound - Duration of single invocation 997.00 ns 801.37 ns 0.80 0.00 True
IndexOf_Word_NotFound - Duration of single invocation 629.88 ns 561.28 ns 0.89 0.01 True
IndexOf_Word_NotFound - Duration of single invocation 630.36 ns 558.52 ns 0.89 0.00 True
IndexOf_Word_NotFound - Duration of single invocation 631.05 ns 560.84 ns 0.89 0.00 True
IndexOf_Word_NotFound - Duration of single invocation 978.00 ns 812.63 ns 0.83 0.01 True
LastIndexOf_Word_NotFound - Duration of single invocation 994.03 ns 799.39 ns 0.80 0.00 True
IsSuffix_DifferentLastChar - Duration of single invocation 32.33 ns 29.64 ns 0.92 0.03 False
IndexOf_Word_NotFound - Duration of single invocation 978.49 ns 812.86 ns 0.83 0.00 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Globalization.Tests.StringSearch*'

Payloads

Baseline
Compare

Histogram

System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, IgnoreNonSpace, False))


Description of detection logic

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.
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 560.1702058741884 < 591.9553184834358.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 432.3102412709109 (T) = (0 -560.1189326623872) / Math.Sqrt((3.3882555723485064 / (299)) + (0.26633817632971674 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10182597067670396 = (623.619604192289 - 560.1189326623872) / 623.619604192289 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, None, False))


Description of detection logic

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.
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 561.0553082129635 < 591.9260754269544.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 458.44721100014027 (T) = (0 -560.1417549986801) / Math.Sqrt((2.097931095122009 / (299)) + (0.31418773514994447 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10161919730214593 = (623.5014743375683 - 560.1417549986801) / 623.5014743375683 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (, None, False))


Description of detection logic

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.
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 560.0284313370724 < 591.3386391123387.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 47.316453682157025 (T) = (0 -561.7641494528842) / Math.Sqrt((1.6620068541949131 / (299)) + (45.29919191399933 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10019723285964711 = (624.319206350317 - 561.7641494528842) / 624.319206350317 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, IgnoreCase, False))


Description of detection logic

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.
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 801.3707604910176 < 946.4875267188866.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 95.06352102342792 (T) = (0 -802.890709894433) / Math.Sqrt((98.35288776415791 / (299)) + (101.68545582543862 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.19601313354350283 = (998.6365989199608 - 802.890709894433) / 998.6365989199608 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (, None, False))


Description of detection logic

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.
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 561.2760293336712 < 598.6726842956258.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 56.43543377677947 (T) = (0 -561.8355676163272) / Math.Sqrt((3.067647567245063 / (299)) + (38.14005969322872 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10880142322654862 = (630.4269129899537 - 561.8355676163272) / 630.4269129899537 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, None, False))


Description of detection logic

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.
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 558.5247962308201 < 598.8831670367961.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 431.1812020243423 (T) = (0 -560.1239990775168) / Math.Sqrt((2.549714317952406 / (299)) + (0.48268709112103736 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.11245745329697061 = (631.0953780843744 - 560.1239990775168) / 631.0953780843744 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, IgnoreNonSpace, False))


Description of detection logic

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.
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 560.8404666002897 < 598.6711149153454.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 189.0153900769059 (T) = (0 -561.046493064931) / Math.Sqrt((3.2880491914222154 / (299)) + (3.212237277365591 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10998387466755176 = (630.3778966424491 - 561.046493064931) / 630.3778966424491 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, IgnoreCase, False))


Description of detection logic

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.
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 812.6305518064785 < 930.0821570736044.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 64.96503065029812 (T) = (0 -814.0476751698677) / Math.Sqrt((75.14136434811185 / (299)) + (168.2105250388471 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1714258598050678 = (982.4681168282093 - 814.0476751698677) / 982.4681168282093 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (, IgnoreCase, False))


Description of detection logic

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.
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 799.3894580208604 < 948.6983088989396.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 173.99101743177312 (T) = (0 -798.5101781355077) / Math.Sqrt((107.78070528121486 / (299)) + (25.090298380718046 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.20055071599758575 = (998.8253090149697 - 798.5101781355077) / 998.8253090149697 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IsSuffix_DifferentLastChar(Options: (en-US, Ordinal, False))


Description of detection logic

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.
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.636833067685913 < 30.701894042011457.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 25.91177786734086 (T) = (0 -29.026173064383293) / Math.Sqrt((0.9685701534905444 / (299)) + (0.21098273983481566 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08686019365344266 = (31.78721687812085 - 29.026173064383293) / 31.78721687812085 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (, IgnoreCase, False))


Description of detection logic

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.
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 812.8583326837127 < 929.9904607482273.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 116.52418879826712 (T) = (0 -812.1715310956145) / Math.Sqrt((73.77114370968978 / (299)) + (49.28079835037716 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.17354483973785198 = (982.7169943956756 - 812.1715310956145) / 982.7169943956756 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Linq.Tests.Perf_Enumerable

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SelectToList - Duration of single invocation 577.39 ns 464.48 ns 0.80 0.47 False
SelectToArray - Duration of single invocation 347.44 ns 299.00 ns 0.86 0.31 False
SelectToList - Duration of single invocation 461.18 ns 317.85 ns 0.69 0.35 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_Enumerable*'

Payloads

Baseline
Compare

Histogram

System.Linq.Tests.Perf_Enumerable.SelectToList(input: IList)


Description of detection logic

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.
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 464.4830439050207 < 551.8110008502285.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 10.85061498012346 (T) = (0 -501.04028233209766) / Math.Sqrt((1425.3683662752633 / (299)) + (2164.4095298882335 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.16886132398135298 = (602.8359608196798 - 501.04028233209766) / 602.8359608196798 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SelectToArray(input: List)


Description of detection logic

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.
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 298.9978070635087 < 331.17032138190405.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 6.216507154178892 (T) = (0 -312.0545381220496) / Math.Sqrt((2510.128435524678 / (299)) + (2064.4115462820555 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1572988981848869 = (370.30275319435117 - 312.0545381220496) / 370.30275319435117 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SelectToList(input: List)


Description of detection logic

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.
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 317.85269350276656 < 436.68064611304965.
IsChangePoint: Marked as a change because one of 4/26/2023 8:38:54 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 24.03202802545499 (T) = (0 -314.14727853112134) / Math.Sqrt((1883.483152770094 / (299)) + (737.5700925862083 / (22))) is greater than 1.9674283869023508 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (22) - 2, .975) and 0.32558442887611994 = (465.8066806014139 - 314.14727853112134) / 465.8066806014139 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.ContainsKeyTrue<Int32, Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SortedList - Duration of single invocation 29.92 μs 27.96 μs 0.93 0.00 True
Dictionary - Duration of single invocation 6.26 μs 4.50 μs 0.72 0.05 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsKeyTrue&lt;Int32, Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.ContainsKeyTrue<Int32, Int32>.SortedList(Size: 512)


Description of detection logic

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.
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 27.964219335122245 < 28.463561547333967.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 98.65194564468185 (T) = (0 -28117.878817687717) / Math.Sqrt((28488.508830799183 / (299)) + (6676.495436520614 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.06176570742289892 = (29968.931044350076 - 28117.878817687717) / 29968.931044350076 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Collections.ContainsKeyTrue<Int32, Int32>.Dictionary(Size: 512)


Description of detection logic

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.
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 4.495619232634845 < 5.908833589567411.
IsChangePoint: Marked as a change because one of 3/25/2023 12:18:49 AM, 4/4/2023 10:11:10 PM, 4/17/2023 8:43:19 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 38.273551146140264 (T) = (0 -4625.465561142535) / Math.Sqrt((115856.92537259196 / (299)) + (2169.8403735026122 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.15223071251511078 = (5456.04285201825 - 4625.465561142535) / 5456.04285201825 is greater than 0.05.
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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented May 4, 2023

Run Information

Name Value
Architecture arm64
OS ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.TryAddDefaultSize<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Dictionary - Duration of single invocation 13.24 μs 11.37 μs 0.86 0.00 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryAddDefaultSize&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.TryAddDefaultSize<Int32>.Dictionary(Count: 512)


Description of detection logic

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.
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.36620192307692 < 12.587346991468264.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 93.16792560865449 (T) = (0 -11395.33225700115) / Math.Sqrt((44835.78730678877 / (299)) + (8005.570653611851 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14889743736952482 = (13388.90605825691 - 11395.33225700115) / 13388.90605825691 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

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
ToUpperInvariant - Duration of single invocation 29.31 ns 24.91 ns 0.85 0.41 False
ToUpper - Duration of single invocation 22.31 ns 16.62 ns 0.74 0.21 True
CtorCharCount - Duration of single invocation 10.68 ns 9.15 ns 0.86 0.43 False
ToLower - Duration of single invocation 39.60 ns 34.28 ns 0.87 0.32 False
ToUpperInvariant - Duration of single invocation 13.16 ns 6.56 ns 0.50 0.45 True
ToUpperInvariant - Duration of single invocation 29.74 ns 24.37 ns 0.82 0.37 False
ToLowerInvariant - Duration of single invocation 29.01 ns 24.57 ns 0.85 0.39 False
ToLowerInvariant - Duration of single invocation 27.10 ns 24.95 ns 0.92 0.41 False
TrimStart - Duration of single invocation 17.22 ns 14.18 ns 0.82 0.40 False
ToLowerInvariant - Duration of single invocation 11.39 ns 6.36 ns 0.56 0.44 True
ToLower - Duration of single invocation 22.74 ns 16.87 ns 0.74 0.33 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_String*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_String.ToUpperInvariant(s: "TeSt")


Description of detection logic

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.
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 24.906213051762148 < 25.788595453288064.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 14.785983629211007 (T) = (0 -24.850261469999005) / Math.Sqrt((1.49320950011272 / (299)) + (0.7006195029523054 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.09611799035257065 = (27.492815660411434 - 24.850261469999005) / 27.492815660411434 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToUpper(s: "TEST")


Description of detection logic

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.
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.619326749014906 < 21.179851510384914.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 57.727489490564544 (T) = (0 -16.18423531848327) / Math.Sqrt((0.3067928918378448 / (299)) + (0.23838176918350393 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.2647833897679189 = (22.012880412718772 - 16.18423531848327) / 22.012880412718772 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.CtorCharCount(size: 1)


Description of detection logic

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.
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 9.15315369877578 < 10.139878144951172.
IsChangePoint: Marked as a change because one of 3/17/2023 7:47:41 PM, 4/26/2023 12:55:36 AM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 2.1671660882022294 (T) = (0 -10.06617960976319) / Math.Sqrt((0.5908827619037847 / (299)) + (2.574258732593259 / (25))) is greater than 1.9673585853226652 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (25) - 2, .975) and 0.06519757264976951 = (10.768242909142364 - 10.06617960976319) / 10.768242909142364 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToLower(s: "TeSt")


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 34.28312205796629 < 38.09406957178503.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 16.846791801117483 (T) = (0 -35.074387151713374) / Math.Sqrt((2.4841873322828563 / (299)) + (0.51571108502969 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07456913014081859 = (37.90060208068322 - 35.074387151713374) / 37.90060208068322 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToUpperInvariant(s: "TEST")


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 6.560772881641752 < 11.072475570058211.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 54.38976312860975 (T) = (0 -6.050846674111892) / Math.Sqrt((0.47941660922787527 / (299)) + (0.2691065933410369 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.49565475876722226 = (11.9974298940974 - 6.050846674111892) / 11.9974298940974 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToUpperInvariant(s: "test")


Description of detection logic

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.
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 24.371570679757028 < 26.324768283082967.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 16.697044438043772 (T) = (0 -24.727101025399403) / Math.Sqrt((1.4452715406759806 / (299)) + (0.6222728863845333 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10276003286157744 = (27.559072189195742 - 24.727101025399403) / 27.559072189195742 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToLowerInvariant(s: "TEST")


Description of detection logic

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.
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 24.574727944914642 < 25.7924464981481.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 19.279953433228265 (T) = (0 -24.922702623444266) / Math.Sqrt((1.4992830585859929 / (299)) + (0.29437967629085093 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.0899794145821737 = (27.3869657706713 - 24.922702623444266) / 27.3869657706713 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToLowerInvariant(s: "TeSt")


Description of detection logic

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.
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 24.947563090669256 < 25.611144484934858.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 14.219180482672403 (T) = (0 -25.00745068179957) / Math.Sqrt((1.287177760352257 / (299)) + (0.5644627872539504 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08400596409064447 = (27.300888107828513 - 25.00745068179957) / 27.300888107828513 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.TrimStart(s: " Test")


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 14.175222494403767 < 15.928218386448238.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 10.233891747552883 (T) = (0 -14.64762006027634) / Math.Sqrt((0.4409113379240419 / (299)) + (0.35688789059107096 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07930939652515058 = (15.909383678940165 - 14.64762006027634) / 15.909383678940165 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToLowerInvariant(s: "test")


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 6.3574888438247035 < 10.992020009183884.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 52.53072839938989 (T) = (0 -6.201022009284272) / Math.Sqrt((0.5075138525537686 / (299)) + (0.27411718986896955 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.48379943620952304 = (12.012815258762936 - 6.201022009284272) / 12.012815258762936 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.ToLower(s: "test")


Description of detection logic

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.
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.867921415007967 < 21.339237891641304.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 56.28166127548302 (T) = (0 -16.274153041294447) / Math.Sqrt((0.5216066536937686 / (299)) + (0.21742386105529024 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.25798368475860844 = (21.932338557812123 - 16.274153041294447) / 21.932338557812123 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.Tests.Perf_Encoding

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
GetString - Duration of single invocation 28.47 ns 24.76 ns 0.87 0.27 False
GetString - Duration of single invocation 27.22 ns 24.07 ns 0.88 0.26 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Tests.Perf_Encoding*'

Payloads

Baseline
Compare

Histogram

System.Text.Tests.Perf_Encoding.GetString(size: 16, encName: "ascii")


Description of detection logic

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.
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 24.760281973840943 < 26.708667532183426.
IsChangePoint: Marked as a change because one of 1/17/2023 11:08:46 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 27.031034681126254 (T) = (0 -24.36384026304672) / Math.Sqrt((0.8513902822252984 / (299)) + (0.4538087007070918 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.13650330495077012 = (28.215325435215107 - 24.36384026304672) / 28.215325435215107 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.Tests.Perf_Encoding.GetString(size: 16, encName: "utf-8")


Description of detection logic

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.
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 24.066073977357007 < 26.02468168889718.
IsChangePoint: Marked as a change because one of 1/17/2023 4:06:07 PM, 4/26/2023 5:34:01 AM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 9.992517294593831 (T) = (0 -25.33787063781246) / Math.Sqrt((0.6545367500624959 / (299)) + (0.7109118447499689 / (24))) is greater than 1.967381707010986 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (24) - 2, .975) and 0.06571560957040637 = (27.12008345356369 - 25.33787063781246) / 27.12008345356369 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.Tests.Perf_StringBuilder

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Append_Char_Capacity - Duration of single invocation 379.61 ns 310.95 ns 0.82 0.50 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Tests.Perf_StringBuilder*'

Payloads

Baseline
Compare

Histogram

System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(length: 100)


Description of detection logic

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.
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 310.9456551482107 < 367.3908658332127.
IsChangePoint: Marked as a change because one of 4/18/2023 2:18:01 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 7.986792603063202 (T) = (0 -316.46583847813935) / Math.Sqrt((497.44960174646235 / (299)) + (547.8324567541262 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10740836981027012 = (354.547172272802 - 316.46583847813935) / 354.547172272802 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

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 381.29 μs 300.78 μs 0.79 0.26 False
CtorInvoke - Duration of single invocation 360.84 μs 275.56 μs 0.76 0.35 False
ReplaceWords - Duration of single invocation 4.39 μs 4.09 μs 0.93 0.01 False
MatchesWord - Duration of single invocation 3.02 μs 2.02 μs 0.67 0.06 True
ReplaceWords - Duration of single invocation 4.98 μs 4.62 μs 0.93 0.01 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.RegularExpressions.Tests.Perf_Regex_Common*'

Payloads

Baseline
Compare

Histogram

System.Text.RegularExpressions.Tests.Perf_Regex_Common.CtorInvoke(Options: IgnoreCase, Compiled)


Description of detection logic

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.
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 300.7773433569182 < 369.216955433112.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 4/12/2023 2:59:13 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 15.768798120038712 (T) = (0 -292162.21852186264) / Math.Sqrt((480900598.0601342 / (299)) + (83627620.65861729 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10598828479142791 = (326799.0939623218 - 292162.21852186264) / 326799.0939623218 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.RegularExpressions.Tests.Perf_Regex_Common.CtorInvoke(Options: Compiled)


Description of detection logic

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.
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 275.56067043821844 < 339.5814614952329.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 4/12/2023 2:59:13 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 12.554264841897519 (T) = (0 -269431.3535983838) / Math.Sqrt((529327065.434973 / (299)) + (126017168.17490944 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10703211674749223 = (301725.6932209237 - 269431.3535983838) / 301725.6932209237 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.RegularExpressions.Tests.Perf_Regex_Common.ReplaceWords(Options: Compiled)


Description of detection logic

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.
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 4.087730750027996 < 4.14073523012585.
IsChangePoint: Marked as a change because one of 1/21/2023 8:03:21 AM, 3/15/2023 9:07:40 PM, 4/30/2023 6:17:41 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 52.321862609147736 (T) = (0 -4092.043320118272) / Math.Sqrt((1391.8142307015753 / (299)) + (217.38714121758352 / (9))) is greater than 1.9677467375895035 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (9) - 2, .975) and 0.064221481053355 = (4372.8758859783 - 4092.043320118272) / 4372.8758859783 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.RegularExpressions.Tests.Perf_Regex_Common.MatchesWord(Options: IgnoreCase, Compiled)


Description of detection logic

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.
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.021677172642245 < 2.8263213871014137.
IsChangePoint: Marked as a change because one of 5/1/2023 3:45:46 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 64.54548341144898 (T) = (0 -2009.490401910185) / Math.Sqrt((3711.825692011951 / (299)) + (1183.0827455327849 / (6))) is greater than 1.967824097752068 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (6) - 2, .975) and 0.317414625983681 = (2943.9400233356637 - 2009.490401910185) / 2943.9400233356637 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Text.RegularExpressions.Tests.Perf_Regex_Common.ReplaceWords(Options: IgnoreCase, Compiled)


Description of detection logic

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.
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 4.615335308465688 < 4.719603057477624.
IsChangePoint: Marked as a change because one of 3/27/2023 9:31:31 PM, 4/30/2023 6:17:41 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 53.33966041447048 (T) = (0 -4640.162868233685) / Math.Sqrt((2796.5430377679695 / (299)) + (332.35307262914034 / (9))) is greater than 1.9677467375895035 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (9) - 2, .975) and 0.07253016720614079 = (5003.03374208508 - 4640.162868233685) / 5003.03374208508 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_Single

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToStringWithFormat - Duration of single invocation 218.84 ns 194.99 ns 0.89 0.02 False
ToStringWithCultureInfo - Duration of single invocation 144.79 ns 124.24 ns 0.86 0.01 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Single*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Single.ToStringWithFormat(value: 12345, format: "G17")


Description of detection logic

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.
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 194.99179640710557 < 206.75143424339635.
IsChangePoint: Marked as a change because one of 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 60.68506720427448 (T) = (0 -194.39111259087724) / Math.Sqrt((6.913693463625097 / (299)) + (1.5924530815711628 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08313909080113023 = (212.01810508066197 - 194.39111259087724) / 212.01810508066197 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_Single.ToStringWithCultureInfo(value: 12345, culture: zh)


Description of detection logic

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.
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 124.23672543225346 < 135.80058342025004.
IsChangePoint: Marked as a change because one of 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 28.110677133527485 (T) = (0 -125.17420374656386) / Math.Sqrt((13.084712892608504 / (299)) + (1.005037215633749 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.06056624647540187 = (133.2443115620779 - 125.17420374656386) / 133.2443115620779 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.ContainsFalse<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
HashSet - Duration of single invocation 8.12 μs 4.50 μs 0.55 0.02 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsFalse&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

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


Description of detection logic

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.
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 4.5044777361942785 < 7.690121734410553.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 262.79655840996134 (T) = (0 -4491.435836075346) / Math.Sqrt((37233.22509895702 / (299)) + (1394.928173222888 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.4385228818442411 = (7999.321238286651 - 4491.435836075346) / 7999.321238286651 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

Docs

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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented May 4, 2023

Run Information

Name Value
Architecture arm64
OS ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.CreateAddAndClear<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Dictionary - Duration of single invocation 13.83 μs 11.37 μs 0.82 0.00 True
HashSet - Duration of single invocation 13.21 μs 11.36 μs 0.86 0.00 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndClear&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.CreateAddAndClear<Int32>.Dictionary(Size: 512)


Description of detection logic

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.
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.374504461017569 < 13.244177302167778.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 112.48594592969617 (T) = (0 -11630.48442897252) / Math.Sqrt((37861.149473505444 / (299)) + (4960.804133493313 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1469865627070165 = (13634.585248600031 - 11630.48442897252) / 13634.585248600031 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Collections.CreateAddAndClear<Int32>.HashSet(Size: 512)


Description of detection logic

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.
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.359864914021164 < 12.465502179996184.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 125.61445673852971 (T) = (0 -11235.229140629443) / Math.Sqrt((15803.756527768988 / (299)) + (4542.8283122930425 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14432260404721609 = (13130.216123237875 - 11235.229140629443) / 13130.216123237875 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Memory.Span<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SequenceEqual - Duration of single invocation 126.56 ns 106.55 ns 0.84 0.00 True
StartsWith - Duration of single invocation 62.76 ns 54.79 ns 0.87 0.01 True
EndsWith - Duration of single invocation 63.63 ns 53.58 ns 0.84 0.00 True
SequenceCompareTo - Duration of single invocation 7.32 ns 5.49 ns 0.75 0.07 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

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


Description of detection logic

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.
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 106.54540418555456 < 120.211843679681.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 266.52896231811326 (T) = (0 -107.13988564755111) / Math.Sqrt((0.3825432090404146 / (299)) + (0.09394785285272043 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14821768738418745 = (125.78317729858219 - 107.13988564755111) / 125.78317729858219 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

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


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 54.793951724287396 < 59.857290891043114.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 72.85595035764975 (T) = (0 -54.733407027197146) / Math.Sqrt((0.4974563606229046 / (299)) + (0.23126891790040235 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1203210969870648 = (62.2197563676167 - 54.733407027197146) / 62.2197563676167 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

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


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 53.57621811413893 < 60.42092954206959.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 91.23919688245601 (T) = (0 -53.86565714279106) / Math.Sqrt((0.4772039549996778 / (299)) + (0.20484341102617798 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14153738017327486 = (62.746654191726456 - 53.86565714279106) / 62.746654191726456 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Memory.Span<Int32>.SequenceCompareTo(Size: 4)


Description of detection logic

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.
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 5.488443125043538 < 7.175470880020777.
IsChangePoint: Marked as a change because one of 2/14/2023 11:21:41 AM, 3/3/2023 12:05:09 PM, 4/3/2023 11:26:06 PM, 4/6/2023 11:23:56 PM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 5.032776973675335 (T) = (0 -5.943300916837094) / Math.Sqrt((0.513169376114159 / (299)) + (0.22177501523941143 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07894835948341328 = (6.452733652918416 - 5.943300916837094) / 6.452733652918416 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.CreateAddAndRemove<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
HashSet - Duration of single invocation 19.65 μs 16.81 μs 0.86 0.00 True
Dictionary - Duration of single invocation 19.80 μs 18.33 μs 0.93 0.00 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndRemove&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.CreateAddAndRemove<Int32>.HashSet(Size: 512)


Description of detection logic

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.
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.813658588205804 < 18.66916224358159.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 117.32533735457831 (T) = (0 -16791.001283062258) / Math.Sqrt((36036.15159052902 / (299)) + (14313.650395166544 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.15326389235610224 = (19830.264862312757 - 16791.001283062258) / 19830.264862312757 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Collections.CreateAddAndRemove<Int32>.Dictionary(Size: 512)


Description of detection logic

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.
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 18.331430900393567 < 18.78028437081782.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 94.12057892402967 (T) = (0 -18226.541404282296) / Math.Sqrt((51648.46030307849 / (299)) + (3537.605508556543 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08319466039122822 = (19880.492201387162 - 18226.541404282296) / 19880.492201387162 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Memory.Span<Byte>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SequenceEqual - Duration of single invocation 31.06 ns 28.25 ns 0.91 0.04 False
EndsWith - Duration of single invocation 5.31 ns 3.69 ns 0.69 0.48 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Byte&gt;*'

Payloads

Baseline
Compare

Histogram

System.Memory.Span<Byte>.SequenceEqual(Size: 512)


Description of detection logic

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.
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 28.245299398448417 < 29.93643846042666.
IsChangePoint: Marked as a change because one of 2/7/2023 2:48:42 AM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 24.856278035426307 (T) = (0 -27.78195014799415) / Math.Sqrt((0.4044319633795099 / (299)) + (0.20746371769801308 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07955345604129073 = (30.183121801411676 - 27.78195014799415) / 30.183121801411676 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Memory.Span<Byte>.EndsWith(Size: 33)


Description of detection logic

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.
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.6851230184074 < 4.930655304107095.
IsChangePoint: Marked as a change because one of 1/21/2023 9:40:41 PM, 1/27/2023 7:12:54 PM, 4/12/2023 8:39:35 PM, 4/26/2023 12:55:36 AM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 5.411900347554606 (T) = (0 -4.130818199946939) / Math.Sqrt((0.3274062402684769 / (299)) + (0.09134647701203706 / (25))) is greater than 1.9673585853226652 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (25) - 2, .975) and 0.08280738836280896 = (4.503763056457049 - 4.130818199946939) / 4.503763056457049 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Net.NetworkInformation.Tests.PhysicalAddressTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
PAMedium - Duration of single invocation 38.63 ns 27.57 ns 0.71 0.08 False
PALong - Duration of single invocation 465.49 ns 187.99 ns 0.40 0.02 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Net.NetworkInformation.Tests.PhysicalAddressTests*'

Payloads

Baseline
Compare

Histogram

System.Net.NetworkInformation.Tests.PhysicalAddressTests.PAMedium


Description of detection logic

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.
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 27.566774286674768 < 36.76829725543543.
IsChangePoint: Marked as a change because one of 2/18/2023 9:46:56 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 27.243017414097316 (T) = (0 -28.987915240287563) / Math.Sqrt((16.954020999033315 / (299)) + (0.18867598347071757 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1920356527301198 = (35.877715815355 - 28.987915240287563) / 35.877715815355 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Net.NetworkInformation.Tests.PhysicalAddressTests.PALong


Description of detection logic

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.
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 187.9851263828778 < 441.7103006087212.
IsChangePoint: Marked as a change because one of 2/18/2023 9:46:56 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 220.1055598925856 (T) = (0 -188.800946099565) / Math.Sqrt((358.5121441727294 / (299)) + (4.487624763729209 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.5772310698928115 = (446.58188588195577 - 188.800946099565) / 446.58188588195577 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in BenchmarksGame.RegexRedux_1

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
RunBench - Duration of single invocation 49.51 ms 43.67 ms 0.88 0.01 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'BenchmarksGame.RegexRedux_1*'

Payloads

Baseline
Compare

Histogram

BenchmarksGame.RegexRedux_1.RunBench


Description of detection logic

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.
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.67056367307692 < 46.90015788848958.
IsChangePoint: Marked as a change because one of 4/12/2023 2:59:13 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 14.165502658080843 (T) = (0 -45012991.13178552) / Math.Sqrt((895791005046.6588 / (299)) + (739310582880.563 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.05284387343303289 = (47524362.530323505 - 45012991.13178552) / 47524362.530323505 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.TryGetValueFalse<Int32, Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IDictionary - Duration of single invocation 8.86 μs 7.94 μs 0.90 0.04 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryGetValueFalse&lt;Int32, Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.TryGetValueFalse<Int32, Int32>.IDictionary(Size: 512)


Description of detection logic

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.
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 7.935209116415412 < 8.393478430518858.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 51.23643347239009 (T) = (0 -7889.546187495144) / Math.Sqrt((55392.34680400906 / (299)) + (5172.60027977535 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.11292004791920578 = (8893.83890255765 - 7889.546187495144) / 8893.83890255765 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.IndexerSet<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Dictionary - Duration of single invocation 6.64 μs 5.54 μs 0.83 0.01 True
SortedList - Duration of single invocation 30.69 μs 28.39 μs 0.92 0.00 False
Span - Duration of single invocation 191.16 ns 175.73 ns 0.92 0.14 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IndexerSet&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.IndexerSet<Int32>.Dictionary(Size: 512)


Description of detection logic

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.
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 5.5421310155154275 < 6.313929384874193.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 67.68883541498734 (T) = (0 -5522.503314183237) / Math.Sqrt((18289.47171091478 / (299)) + (6990.547390073308 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.18211782795083764 = (6752.199158892148 - 5522.503314183237) / 6752.199158892148 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

System.Collections.IndexerSet<Int32>.SortedList(Size: 512)


Description of detection logic

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.
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 28.38647886690648 < 29.330979177097923.
IsChangePoint: Marked as a change because one of 3/19/2023 10:05:03 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 64.76113983710621 (T) = (0 -28533.121397310053) / Math.Sqrt((169820.01527756927 / (299)) + (7743.349409434781 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.06260268261154493 = (30438.663380008373 - 28533.121397310053) / 30438.663380008373 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Collections.IndexerSet<Int32>.Span(Size: 512)


Description of detection logic

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.
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 175.72802674329236 < 181.64099770102862.
IsChangePoint: Marked as a change because one of 1/27/2023 3:43:27 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 28.998022640151692 (T) = (0 -177.48457204235382) / Math.Sqrt((49.49941986994273 / (299)) + (2.9390623764113104 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07939017114012926 = (192.79022065423698 - 177.48457204235382) / 192.79022065423698 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Perf_Convert

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToHexString - Duration of single invocation 132.88 ns 60.76 ns 0.46 0.02 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Perf_Convert*'

Payloads

Baseline
Compare

Histogram

System.Perf_Convert.ToHexString


Description of detection logic

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.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed: Marked as improvement because 60.76163851303811 < 125.91344000736167.
IsChangePoint: Marked as a change because one of 2/18/2023 9:46:56 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 86.63332340751191 (T) = (0 -62.92057717044078) / Math.Sqrt((44.972773231858355 / (299)) + (10.00891335249631 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.5018528897007912 = (126.30922847800511 - 62.92057717044078) / 126.30922847800511 is greater than 0.05.
IsChangeEdgeDetector: Marked as regression because Edge Detector said so.

JIT Disasms

Docs

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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented May 4, 2023

Run Information

Name Value
Architecture arm64
OS ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Globalization.Tests.Perf_NumberCultureInfo

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToString - Duration of single invocation 157.36 ns 144.24 ns 0.92 0.01 False
ToString - Duration of single invocation 158.64 ns 143.36 ns 0.90 0.01 False
ToString - Duration of single invocation 159.13 ns 143.13 ns 0.90 0.01 False
ToString - Duration of single invocation 157.23 ns 142.88 ns 0.91 0.01 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Globalization.Tests.Perf_NumberCultureInfo*'

Payloads

Baseline
Compare

Histogram

System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: )


Description of detection logic

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.
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 144.2363364737556 < 150.7490507301004.
IsChangePoint: Marked as a change because one of 4/6/2023 1:55:21 PM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 57.84893267681938 (T) = (0 -143.70431224410197) / Math.Sqrt((7.314631889808504 / (299)) + (0.36483093381687987 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.0732009531292839 = (155.05444543702473 - 143.70431224410197) / 155.05444543702473 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: da)


Description of detection logic

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.
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 143.36386423248575 < 150.66702931347314.
IsChangePoint: Marked as a change because one of 4/6/2023 1:55:21 PM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 55.22479948675637 (T) = (0 -143.55556060834058) / Math.Sqrt((7.139936797677044 / (299)) + (0.5090037648900659 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07424027306370964 = (155.06783934468982 - 143.55556060834058) / 155.06783934468982 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: ja)


Description of detection logic

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.
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 143.131284644617 < 151.3608860268487.
IsChangePoint: Marked as a change because one of 4/6/2023 1:55:21 PM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 54.16810820759399 (T) = (0 -143.77269499292123) / Math.Sqrt((7.753826251180392 / (299)) + (0.4391380115625496 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07232661211472215 = (154.98201939441762 - 143.77269499292123) / 154.98201939441762 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: fr)


Description of detection logic

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.
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 142.88086092422324 < 150.87789930183592.
IsChangePoint: Marked as a change because one of 4/6/2023 1:55:21 PM, 4/12/2023 8:39:35 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 55.9040493280555 (T) = (0 -143.49411033654388) / Math.Sqrt((7.352207774646847 / (299)) + (0.4532929975803799 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07395826868499417 = (154.9542590621463 - 143.49411033654388) / 154.9542590621463 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.IO.Tests.BinaryWriterExtendedTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
WriteAsciiCharArray - Duration of single invocation 173.67 μs 163.92 μs 0.94 0.00 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.BinaryWriterExtendedTests*'

Payloads

Baseline
Compare

Histogram

System.IO.Tests.BinaryWriterExtendedTests.WriteAsciiCharArray(StringLengthInChars: 2000000)


Description of detection logic

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.
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 163.92499967447915 < 164.7279338934603.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 201.7602935018679 (T) = (0 -164182.83916238847) / Math.Sqrt((251700.27575691039 / (299)) + (33381.76021090798 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.05361997595837879 = (173485.1063965059 - 164182.83916238847) / 173485.1063965059 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_UInt32

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryParseHex - Duration of single invocation 5.03 ns 3.40 ns 0.67 0.45 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_UInt32*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_UInt32.TryParseHex(value: "0")


Description of detection logic

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.
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.397740397157042 < 4.313607162374284.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 31.470996850531723 (T) = (0 -3.3219090740819768) / Math.Sqrt((0.13213107301230204 / (299)) + (0.049266598809803434 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.31411213278549016 = (4.8432247206423575 - 3.3219090740819768) / 4.8432247206423575 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.ContainsKeyFalse<Int32, Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Dictionary - Duration of single invocation 7.19 μs 5.39 μs 0.75 0.08 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsKeyFalse&lt;Int32, Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.ContainsKeyFalse<Int32, Int32>.Dictionary(Size: 512)


Description of detection logic

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.
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 5.388977483076564 < 6.8031141565091815.
IsChangePoint: Marked as a change because one of 2/2/2023 2:17:49 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 73.45118637422277 (T) = (0 -5505.707600946305) / Math.Sqrt((91729.88943912323 / (299)) + (8941.390484618454 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.2539028776652392 = (7379.3443723751425 - 5505.707600946305) / 7379.3443723751425 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_Boolean

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Parse - Duration of single invocation 10.10 ns 8.48 ns 0.84 0.18 False
TryParse - Duration of single invocation 9.70 ns 8.62 ns 0.89 0.28 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Boolean*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Boolean.Parse(value: " True ")


Description of detection logic

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.
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 8.477287268566771 < 9.601231684777295.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 13.348561862972291 (T) = (0 -9.111086635268524) / Math.Sqrt((0.09913398842728086 / (299)) + (0.14739387142033608 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.10192323054756691 = (10.145108909590936 - 9.111086635268524) / 10.145108909590936 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_Boolean.TryParse(value: " True ")


Description of detection logic

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.
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 8.61696776980597 < 9.18898911176312.
IsChangePoint: Marked as a change because one of 2/6/2023 4:57:06 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 10.430660238155252 (T) = (0 -8.64084048015349) / Math.Sqrt((0.1928222282297492 / (299)) + (0.14447702338944163 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.0868104643506827 = (9.462264012924193 - 8.64084048015349) / 9.462264012924193 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_Version

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Parse4 - Duration of single invocation 69.69 ns 62.62 ns 0.90 0.02 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Version*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Version.Parse4


Description of detection logic

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.
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 62.62211483507983 < 65.3029829634306.
IsChangePoint: Marked as a change because one of 1/27/2023 3:43:27 AM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 16.04252293538349 (T) = (0 -62.99678444859061) / Math.Sqrt((1.3736087644118489 / (299)) + (1.753667257634366 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.06397866522254769 = (67.30272282048857 - 62.99678444859061) / 67.30272282048857 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Collections.Sort<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
List - Duration of single invocation 6.52 μs 5.88 μs 0.90 0.16 False
Array_Comparison - Duration of single invocation 26.89 μs 21.93 μs 0.82 0.36 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Sort&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

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


Description of detection logic

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.
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 5.8750014666666655 < 6.162203297333332.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 20.82945685449764 (T) = (0 -5859.357165559312) / Math.Sqrt((31026.933693964485 / (299)) + (15083.22085705725 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08505807432224607 = (6404.0754949762795 - 5859.357165559312) / 6404.0754949762795 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Collections.Sort<Int32>.Array_Comparison(Size: 512)


Description of detection logic

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.
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 21.927455053333333 < 22.862933193333333.
IsChangePoint: Marked as a change because one of 4/26/2023 12:55:36 AM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 4.036055135640768 (T) = (0 -22797.929737104765) / Math.Sqrt((3038748.484836096 / (299)) + (2979486.2912806715 / (25))) is greater than 1.9673585853226652 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (25) - 2, .975) and 0.059858458873525255 = (24249.465362192543 - 22797.929737104765) / 24249.465362192543 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Security.Cryptography.X509Certificates.Tests.X509Certificate2Tests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
CertProp - Duration of single invocation 61.80 ns 40.99 ns 0.66 0.04 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Security.Cryptography.X509Certificates.Tests.X509Certificate2Tests*'

Payloads

Baseline
Compare

Histogram

System.Security.Cryptography.X509Certificates.Tests.X509Certificate2Tests.CertProp


Description of detection logic

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.
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 40.99277932773623 < 59.18163299898842.
IsChangePoint: Marked as a change because one of 2/18/2023 9:46:56 PM, 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 60.61507546286747 (T) = (0 -41.759710473227905) / Math.Sqrt((18.307644473564398 / (299)) + (0.5669636480409304 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.29491531889139333 = (59.22651788090048 - 41.759710473227905) / 59.22651788090048 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Memory.ReadOnlySpan

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Trim - Duration of single invocation 4.59 ns 2.49 ns 0.54 0.21 True

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

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

Payloads

Baseline
Compare

Histogram

System.Memory.ReadOnlySpan.Trim(input: "abcdefg")


Description of detection logic

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.
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.485050444603471 < 4.3694396505777195.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 84.46063869946573 (T) = (0 -2.4653569506807496) / Math.Sqrt((0.1548047891001664 / (299)) + (0.0013417244808909161 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.44977950708061165 = (4.480670899042548 - 2.4653569506807496) / 4.480670899042548 is greater than 0.05.
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 ubuntu 20.04
Queue AmpereUbuntu
Baseline 195bf987887ea645a747ff0586440f7920c47b01
Compare 63a7a13190448f1ba5b3b449f1b9628d042d209d
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesBenchmark

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Factory - Duration of single invocation 44.83 ns 42.04 ns 0.94 0.49 False

Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesBenchmark*'

Payloads

Baseline
Compare

Histogram

Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesBenchmark.Factory


Description of detection logic

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.
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 42.038729774313275 < 42.37021482289213.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/3/2023 11:00:11 PM falls between 4/25/2023 6:51:20 AM and 5/3/2023 11:00:11 PM.
IsImprovementStdDev: Marked as improvement because 9.1518135118324 (T) = (0 -40.348453047090935) / Math.Sqrt((8.883596058155279 / (299)) + (3.4631707664086315 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08387079132306131 = (44.042317027924064 - 40.348453047090935) / 44.042317027924064 is greater than 0.05.
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

@kunalspathak
Copy link
Member

possibly from dotnet/runtime#85355?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants