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] Windows/x64: 25 Improvements on 6/3/2023 12:54:16 AM #18525

Closed
performanceautofiler bot opened this issue Jun 6, 2023 · 2 comments
Closed

[Perf] Windows/x64: 25 Improvements on 6/3/2023 12:54:16 AM #18525

performanceautofiler bot opened this issue Jun 6, 2023 · 2 comments
Labels
arch-x64 branch-refs/heads/main kind-micro os-windows perf-improvement PGO Applied if there were any profile guided optimization updates in the observed interval. runtime-coreclr untriaged

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Jun 6, 2023

Run Information

Name Value
Architecture x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Reflection.Invoke

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Ctor4_ActivatorCreateInstance - Duration of single invocation 406.33 ns 379.24 ns 0.93 0.09 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Reflection.Invoke*'

Payloads

Baseline
Compare

Histogram

System.Reflection.Invoke.Ctor4_ActivatorCreateInstance


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 379.2362587108014 < 395.2623392857143.
IsChangePoint: Marked as a change because one of 5/19/2023 10:30:38 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 11.619160128760392 (T) = (0 -348.40678354960767) / Math.Sqrt((203.08104622871494 / (299)) + (369.6500104440359 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.19607605501215322 = (433.38276676766316 - 348.40678354960767) / 433.38276676766316 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
IndexOfAnyTwoValues - Duration of single invocation 5.34 ns 3.55 ns 0.66 0.08 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Char&gt;*'

Payloads

Baseline
Compare

Histogram

System.Memory.Span<Char>.IndexOfAnyTwoValues(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 3.550983932275012 < 5.0605188686084634.
IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 5/26/2023 6:22:05 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 7.982457197386047 (T) = (0 -3.5508995390649924) / Math.Sqrt((0.210974553291597 / (299)) + (1.1914546566231126E-06 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.05635576171041032 = (3.762964256000975 - 3.5508995390649924) / 3.762964256000975 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.Perf_Ascii

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToLowerInPlace_Chars - Duration of single invocation 16.32 ns 15.13 ns 0.93 0.06 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Perf_Ascii*'

Payloads

Baseline
Compare

Histogram

System.Text.Perf_Ascii.ToLowerInPlace_Chars(Size: 128)


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 15.130554089899174 < 15.418075710583128.
IsChangePoint: Marked as a change because one of 5/22/2023 7:40:07 AM, 5/26/2023 6:22:05 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 18.883720774913947 (T) = (0 -15.221346391755986) / Math.Sqrt((0.16243431161243702 / (80)) + (0.003491315941567178 / (7))) is greater than 1.9882679074768839 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (80) + (7) - 2, .975) and 0.0587273652387231 = (16.171028275581797 - 15.221346391755986) / 16.171028275581797 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IsMatch - Duration of single invocation 108.68 ns 95.03 ns 0.87 0.07 False
IsMatch - Duration of single invocation 108.63 ns 93.78 ns 0.86 0.09 False

graph
graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple*'

Payloads

Baseline
Compare

Histogram

System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple.IsMatch(Id: 5, 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 95.03064274803098 < 102.14160992221501.
IsChangePoint: Marked as a change because one of 3/25/2023 12:18:49 AM, 4/10/2023 1:33:42 PM, 4/12/2023 8:39:35 PM, 4/23/2023 8:38:14 PM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 33.33824953430247 (T) = (0 -95.36272673881858) / Math.Sqrt((26.850147272141854 / (299)) + (0.574230867134131 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.12657369011691386 = (109.182338177543 - 95.36272673881858) / 109.182338177543 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple.IsMatch(Id: 8, Options: None)


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 93.77618854895974 < 103.47801312701218.
IsChangePoint: Marked as a change because one of 5/19/2023 10:30:38 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 9.580250046016484 (T) = (0 -95.34467058395067) / Math.Sqrt((26.60607202756296 / (299)) + (37.04234453022283 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.18902144503651166 = (117.5674375116408 - 95.34467058395067) / 117.5674375116408 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.Json.Document.Tests.Perf_DocumentParse

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Parse - Duration of single invocation 7.41 ms 5.23 ms 0.71 0.05 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_DocumentParse*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Document.Tests.Perf_DocumentParse.Parse(IsDataIndented: False, TestRandomAccess: True, TestCase: Json400KB)


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.228324242424241 < 6.816284305555555.
IsChangePoint: Marked as a change because one of 5/22/2023 7:40:07 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 11.129996084527825 (T) = (0 -5180700.412781663) / Math.Sqrt((788295897943.9656 / (299)) + (493870964.7519615 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.10053857636433972 = (5759780.549388164 - 5180700.412781663) / 5759780.549388164 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in LinqBenchmarks

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Where01ForX - Duration of single invocation 160.07 ms 104.76 ms 0.65 0.02 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'LinqBenchmarks*'

Payloads

Baseline
Compare

Histogram

LinqBenchmarks.Where01ForX


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 104.75557083333332 < 152.13303008333335.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/19/2023 10:30:38 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 112.8470602909022 (T) = (0 -104984581.54761906) / Math.Sqrt((148255136046764.2 / (299)) + (47672099588.29337 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.43248642283365446 = (184990431.5449474 - 104984581.54761906) / 184990431.5449474 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Buffers.Text.Tests.Utf8ParserTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryParseSingle - Duration of single invocation 64.58 ns 55.01 ns 0.85 0.05 False
TryParseDouble - Duration of single invocation 31.40 ns 28.68 ns 0.91 0.02 False
TryParseInt64 - Duration of single invocation 25.40 ns 20.79 ns 0.82 0.07 False
TryParseSingle - Duration of single invocation 32.16 ns 28.10 ns 0.87 0.02 False

graph
graph
graph
graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Buffers.Text.Tests.Utf8ParserTests*'

Payloads

Baseline
Compare

Histogram

System.Buffers.Text.Tests.Utf8ParserTests.TryParseSingle(value: -3.4028235E+38)


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.01346729411413 < 57.124718818134475.
IsChangePoint: Marked as a change because one of 4/9/2023 11:04:55 PM, 5/19/2023 10:30:38 AM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 17.149582197831638 (T) = (0 -55.556393954757745) / Math.Sqrt((10.071367692197127 / (299)) + (1.0537215568823213 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.11698977500773691 = (62.91704487934387 - 55.556393954757745) / 62.91704487934387 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Buffers.Text.Tests.Utf8ParserTests.TryParseDouble(value: 12345)


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.681177577125656 < 29.576576553495066.
IsChangePoint: Marked as a change because one of 5/15/2023 2:12:16 PM, 5/19/2023 10:30:38 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 12.95828183213126 (T) = (0 -27.851907086096737) / Math.Sqrt((0.4427932882669487 / (299)) + (0.5508309949056114 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.11640095034354449 = (31.520978997120466 - 27.851907086096737) / 31.520978997120466 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Buffers.Text.Tests.Utf8ParserTests.TryParseInt64(value: -9223372036854775808)


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 20.793871944599392 < 21.22001440428371.
IsChangePoint: Marked as a change because one of 3/20/2023 8:31:51 AM, 3/25/2023 12:18:49 AM, 4/12/2023 8:39:35 PM, 4/19/2023 8:38:27 PM, 4/25/2023 3:46:39 AM, 5/1/2023 3:42:23 PM, 5/16/2023 12:30:38 AM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 14.090141097947386 (T) = (0 -20.54184034850108) / Math.Sqrt((4.8498232066315765 / (299)) + (0.23780712896219622 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.13320278616614842 = (23.698553733974688 - 20.54184034850108) / 23.698553733974688 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Buffers.Text.Tests.Utf8ParserTests.TryParseSingle(value: 12345)


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.103001504103258 < 30.282857823867566.
IsChangePoint: Marked as a change because one of 4/12/2023 8:39:35 PM, 5/19/2023 10:55:27 PM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 13.562416870057406 (T) = (0 -29.122431288346284) / Math.Sqrt((1.0111971508593045 / (299)) + (0.40066293002894876 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.10286622713166015 = (32.461637460414934 - 29.122431288346284) / 32.461637460414934 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
Contains_ElementNotFound - Duration of single invocation 12.54 ns 10.30 ns 0.82 0.09 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_Enumerable*'

Payloads

Baseline
Compare

Histogram

System.Linq.Tests.Perf_Enumerable.Contains_ElementNotFound(input: ICollection)


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 10.300585328972545 < 11.899733655176165.
IsChangePoint: Marked as a change because one of 4/10/2023 1:33:42 PM, 4/25/2023 3:46:39 AM, 5/26/2023 6:22:05 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 29.969519241526537 (T) = (0 -10.303894269930874) / Math.Sqrt((0.3643697190152104 / (299)) + (3.1722882092900485E-05 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.09233098488756963 = (11.352039232775352 - 10.303894269930874) / 11.352039232775352 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.IO.Tests.Perf_StreamWriter

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
WriteString - Duration of single invocation 358.62 ms 311.65 ms 0.87 0.04 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.Perf_StreamWriter*'

Payloads

Baseline
Compare

Histogram

System.IO.Tests.Perf_StreamWriter.WriteString(writeLength: 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 311.65449333333333 < 324.634453625.
IsChangePoint: Marked as a change because one of 3/17/2023 10:06:19 AM, 5/1/2023 10:17:01 AM, 5/9/2023 1:22:51 PM, 5/19/2023 10:30:38 AM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 33.48928933870943 (T) = (0 -308444736.93877554) / Math.Sqrt((582310252649660.6 / (299)) + (2375258702334.214 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.14103383942458017 = (359088344.9147158 - 308444736.93877554) / 359088344.9147158 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_Enum

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
GetValues_Generic - Duration of single invocation 38.37 ns 29.45 ns 0.77 0.26 False
GetNames_Generic - Duration of single invocation 15.52 ns 11.40 ns 0.73 0.08 False
InterpolateIntoSpan_NonFlags - Duration of single invocation 102.78 ns 90.23 ns 0.88 0.11 False

graph
graph
graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Enum*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Enum.GetValues_Generic


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.448545122475746 < 36.53645068461408.
IsChangePoint: Marked as a change because one of 3/20/2023 8:31:51 AM, 3/25/2023 12:18:49 AM, 4/22/2023 6:52:03 AM, 5/19/2023 10:30:38 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 41.342404911231554 (T) = (0 -30.17373387151606) / Math.Sqrt((12.848616551050856 / (299)) + (0.5479999437329537 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.3230037424514445 = (44.570015764602566 - 30.17373387151606) / 44.570015764602566 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_Enum.GetNames_Generic


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.399633272332444 < 14.867197810069719.
IsChangePoint: Marked as a change because one of 4/9/2023 11:04:55 PM, 4/17/2023 6:40:18 PM, 5/16/2023 12:30:38 AM, 5/19/2023 12:51:11 AM, 5/26/2023 6:22:05 AM, 6/2/2023 1:11:39 AM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 8.375917483686658 (T) = (0 -11.49931639529297) / Math.Sqrt((1.4736416763406504 / (299)) + (0.2904562026243916 / (10))) is greater than 1.9677212881555053 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (10) - 2, .975) and 0.11836510293796434 = (13.04317289800273 - 11.49931639529297) / 13.04317289800273 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_Enum.InterpolateIntoSpan_NonFlags(value: 42)


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 90.23398567045595 < 91.87280379988576.
IsChangePoint: Marked as a change because one of 4/7/2023 2:04:47 AM, 5/19/2023 10:30:38 AM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 24.714545379006072 (T) = (0 -90.02364176204854) / Math.Sqrt((9.816828004008537 / (299)) + (0.16885597284540196 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.06148925786870903 = (95.921802192281 - 90.02364176204854) / 95.921802192281 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 performanceautofiler bot added arch-x64 branch-refs/heads/main kind-micro os-windows perf-improvement PGO Applied if there were any profile guided optimization updates in the observed interval. runtime-coreclr untriaged labels Jun 6, 2023
@performanceautofiler
Copy link
Author

performanceautofiler bot commented Jun 6, 2023

Run Information

Name Value
Architecture x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DataContractJsonSerializer_ - Duration of single invocation 3.15 ms 2.41 ms 0.77 0.13 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream&lt;CollectionsOfPrimitives&gt;*'

Payloads

Baseline
Compare

Histogram

MicroBenchmarks.Serializers.Json_FromStream<CollectionsOfPrimitives>.DataContractJsonSerializer_


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.407847313915857 < 2.9913341124999997.
IsChangePoint: Marked as a change because one of 5/19/2023 10:55:27 PM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 46.773143692017804 (T) = (0 -2447559.2784864833) / Math.Sqrt((55737716334.40672 / (299)) + (1942062518.2420406 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.29157324537850354 = (3454922.1391196377 - 2447559.2784864833) / 3454922.1391196377 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
ICollection - Duration of single invocation 20.41 μs 17.28 μs 0.85 0.02 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsFalse&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

System.Collections.ContainsFalse<Int32>.ICollection(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 17.28127253495217 < 19.380310882716337.
IsChangePoint: Marked as a change because one of 5/19/2023 10:30:38 AM, 5/22/2023 7:40:07 AM, 5/26/2023 6:22:05 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 18.24365337102627 (T) = (0 -17257.74228360751) / Math.Sqrt((724305.4711607812 / (299)) + (2707.599487139079 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.053057270693139875 = (18224.694851651453 - 17257.74228360751) / 18224.694851651453 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Tests.Perf_Uri

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
EscapeDataString - Duration of single invocation 16.77 μs 6.64 μs 0.40 0.01 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Uri*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_Uri.EscapeDataString(input: "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{")


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.643967254296265 < 10.717138753287772.
IsChangePoint: Marked as a change because one of 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 6.893732580417657 (T) = (0 -6648.191620743836) / Math.Sqrt((5783371.368691898 / (299)) + (55.03535205002388 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.1260595970285371 = (7607.145290616484 - 6648.191620743836) / 7607.145290616484 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
GetBytes - Duration of single invocation 16.44 ns 13.61 ns 0.83 0.04 False
GetBytes - Duration of single invocation 84.06 ns 68.17 ns 0.81 0.20 False

graph
graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Tests.Perf_Encoding*'

Payloads

Baseline
Compare

Histogram

System.Text.Tests.Perf_Encoding.GetBytes(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 13.611966445704812 < 15.42971113078387.
IsChangePoint: Marked as a change because one of 4/5/2023 6:15:03 PM, 4/12/2023 8:39:35 PM, 5/16/2023 5:40:18 PM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 51.67968151489558 (T) = (0 -13.509006679167081) / Math.Sqrt((1.846251064321067 / (299)) + (0.023717678847768472 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.27225348855796516 = (18.56279139339176 - 13.509006679167081) / 18.56279139339176 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Text.Tests.Perf_Encoding.GetBytes(size: 512, 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 68.17286180996742 < 75.86431939485935.
IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 5/16/2023 5:40:18 PM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 32.39679067560482 (T) = (0 -67.92498644753712) / Math.Sqrt((25.763319530299196 / (299)) + (0.11769657508570547 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.13273833773981916 = (78.32121423483314 - 67.92498644753712) / 78.32121423483314 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
EndsWith - Duration of single invocation 22.24 ns 18.28 ns 0.82 0.06 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Int32&gt;*'

Payloads

Baseline
Compare

Histogram

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 18.275457332325857 < 21.180984075909663.
IsChangePoint: Marked as a change because one of 5/19/2023 10:30:38 AM, 5/22/2023 7:40:07 AM, 5/26/2023 6:22:05 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 25.125996421764413 (T) = (0 -18.29998754666426) / Math.Sqrt((1.6473927732669713 / (299)) + (0.0018120547475797349 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.09443344241720257 = (20.208329684249698 - 18.29998754666426) / 20.208329684249698 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
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
TrimEnd_CharArr - Duration of single invocation 3.21 ns 2.14 ns 0.67 0.12 False
Trim_CharArr - Duration of single invocation 5.13 ns 3.81 ns 0.74 0.10 False

graph
graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_String*'

Payloads

Baseline
Compare

Histogram

System.Tests.Perf_String.TrimEnd_CharArr(s: "Test", c: [' ', ' '])


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.140773811982428 < 3.597841714803726.
IsChangePoint: Marked as a change because one of 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 78.31646160748308 (T) = (0 -2.115479023752047) / Math.Sqrt((0.17690386495784066 / (299)) + (0.0018407582567362788 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.5197517363447345 = (4.40496964559687 - 2.115479023752047) / 4.40496964559687 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

JIT Disasms

System.Tests.Perf_String.Trim_CharArr(s: "Test", c: [' ', ' '])


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.811493241238576 < 5.1723895441065535.
IsChangePoint: Marked as a change because one of 4/25/2023 6:46:56 PM, 5/26/2023 9:55:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 76.32895483544593 (T) = (0 -3.8074079263899407) / Math.Sqrt((0.1620361389323642 / (299)) + (0.00017819596841037484 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.3231935716231748 = (5.625549295566223 - 3.8074079263899407) / 5.625549295566223 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 x64
OS Windows 10.0.19042
Queue OwlWindows
Baseline 0214a047483067a6a813a34be5b6b1f757600961
Compare 2f18320e731cc3b06bc43cdb4d82dffc4f8f81fc
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Improvements in System.Text.Encodings.Web.Tests.Perf_Encoders

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
EncodeUtf8 - Duration of single invocation 85.60 ns 80.07 ns 0.94 0.12 False

graph
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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Encodings.Web.Tests.Perf_Encoders*'

Payloads

Baseline
Compare

Histogram

System.Text.Encodings.Web.Tests.Perf_Encoders.EncodeUtf8(arguments: Url,&lorem ipsum=dolor sit amet,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 80.06956516761514 < 81.47991800085872.
IsChangePoint: Marked as a change because one of 3/20/2023 8:31:51 AM, 3/25/2023 12:18:49 AM, 4/25/2023 3:46:39 AM, 5/4/2023 10:11:14 AM, 6/2/2023 6:53:36 PM, 6/5/2023 10:43:22 AM falls between 5/27/2023 6:38:16 PM and 6/5/2023 10:43:22 AM.
IsImprovementStdDev: Marked as improvement because 17.849752534330236 (T) = (0 -79.3974081495007) / Math.Sqrt((17.063751213841254 / (299)) + (0.13813766817457085 / (7))) is greater than 1.9677981407170237 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (7) - 2, .975) and 0.058649882959210295 = (84.34418471109653 - 79.3974081495007) / 84.34418471109653 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

dotnet/runtime#86698

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-x64 branch-refs/heads/main kind-micro os-windows perf-improvement PGO Applied if there were any profile guided optimization updates in the observed interval. runtime-coreclr untriaged
Projects
None yet
Development

No branches or pull requests

1 participant