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: 46 Improvements on 2/8/2023 4:45:44 PM #13048

Closed
performanceautofiler bot opened this issue Feb 16, 2023 · 3 comments
Closed

[Perf] Linux/arm64: 46 Improvements on 2/8/2023 4:45:44 PM #13048

performanceautofiler bot opened this issue Feb 16, 2023 · 3 comments

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Feb 16, 2023

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<Hashtable>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromStream - Duration of single invocation 47.93 μs 43.69 μs 0.91 0.06 False
DeserializeFromReader - Duration of single invocation 54.84 μs 49.87 μs 0.91 0.03 False
DeserializeFromReader - Duration of single invocation 56.30 μs 48.69 μs 0.86 0.05 False
DeserializeFromUtf8Bytes - Duration of single invocation 46.20 μs 41.96 μs 0.91 0.04 False
DeserializeFromUtf8Bytes - Duration of single invocation 46.67 μs 41.52 μs 0.89 0.06 False

graph
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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;Hashtable&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<Hashtable>.DeserializeFromStream(Mode: Reflection)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 43.68826084063046 < 45.27820380185931.
IsChangePoint: Marked as a change because one of 1/17/2023 2:54:07 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 35.84558271130442 (T) = (0 -43572.69325555871) / Math.Sqrt((1243342.583056197 / (228)) + (351905.18368875503 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.10181830676556823 = (48512.11462421327 - 43572.69325555871) / 48512.11462421327 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;Hashtable&gt;.DeserializeFromReader(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 49.86684360645385 < 52.326453295540645.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 42.040576440556485 (T) = (0 -49205.696839877884) / Math.Sqrt((1190480.1898246524 / (228)) + (616575.845437596 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.12689332589495558 = (56357.02749645674 - 49205.696839877884) / 56357.02749645674 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;Hashtable&gt;.DeserializeFromReader(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 48.68787276090343 < 53.27007701499068.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 33.68252885291996 (T) = (0 -49263.767386449166) / Math.Sqrt((1128773.2760143797 / (228)) + (1074100.2468400851 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.12820503293625415 = (56508.4328857418 - 49263.767386449166) / 56508.4328857418 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;Hashtable&gt;.DeserializeFromUtf8Bytes(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 41.95878728638634 < 44.0041444170035.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 27.516356912801367 (T) = (0 -42387.96637257383) / Math.Sqrt((943626.9986969217 / (254)) + (670502.6551921507 / (26))) is greater than 1.968533974640638 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (254) + (26) - 2, .975) and 0.10031722070221344 = (47114.34668746039 - 42387.96637257383) / 47114.34668746039 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;Hashtable&gt;.DeserializeFromUtf8Bytes(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 41.51532287708967 < 43.96613155798717.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 27.910218049290936 (T) = (0 -42515.13651419471) / Math.Sqrt((897081.194789186 / (228)) + (557368.148362781 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.09466799744245326 = (46960.82364711532 - 42515.13651419471) / 46960.82364711532 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<MyEventsListerViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromString - Duration of single invocation 396.18 μs 355.98 μs 0.90 0.01 False
DeserializeFromString - Duration of single invocation 414.24 μs 358.93 μs 0.87 0.01 False
DeserializeFromUtf8Bytes - Duration of single invocation 409.38 μs 364.69 μs 0.89 0.01 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;MyEventsListerViewModel&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<MyEventsListerViewModel>.DeserializeFromString(Mode: SourceGen)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 355.97593993506496 < 378.0006571557043.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 34.21747979916279 (T) = (0 -365847.90102523274) / Math.Sqrt((36558573.00642223 / (228)) + (31950734.407461375 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.09929252995144423 = (406178.37998558005 - 365847.90102523274) / 406178.37998558005 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;MyEventsListerViewModel&gt;.DeserializeFromString(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 358.92714550454326 < 387.8685417384618.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 40.69857633615731 (T) = (0 -365399.71378403244) / Math.Sqrt((41795100.558440946 / (228)) + (23834667.42422325 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.10459970884008155 = (408085.31937228516 - 365399.71378403244) / 408085.31937228516 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;MyEventsListerViewModel&gt;.DeserializeFromUtf8Bytes(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 364.6900334797462 < 381.66969621578244.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 39.1047754905359 (T) = (0 -358891.5169527746) / Math.Sqrt((40301436.67956981 / (228)) + (24437441.185180202 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.10325188682667068 = (400214.4099113434 - 358891.5169527746) / 400214.4099113434 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Tests.Perf_Reader

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ReadMultiSpanSequenceEmptyLoop - Duration of single invocation 2.74 μs 2.26 μs 0.82 0.01 False
ReadSpanEmptyLoop - Duration of single invocation 108.48 μs 94.70 μs 0.87 0.00 False
ReadMultiSpanSequenceEmptyLoop - Duration of single invocation 4.44 μs 4.12 μs 0.93 0.00 False
ReadReturnBytes - Duration of single invocation 11.69 μs 10.75 μs 0.92 0.00 False
ReadSpanEmptyLoop - Duration of single invocation 2.81 μs 2.18 μs 0.78 0.00 False
ReadMultiSpanSequenceEmptyLoop - Duration of single invocation 110.44 μs 96.98 μs 0.88 0.00 False
ReadMultiSpanSequenceEmptyLoop - Duration of single invocation 15.92 μs 14.96 μs 0.94 0.00 False
ReadSingleSpanSequenceEmptyLoop - Duration of single invocation 9.54 μs 8.91 μs 0.93 0.01 False
ReadSingleSpanSequenceEmptyLoop - Duration of single invocation 1.72 μs 1.50 μs 0.87 0.01 False

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

Payloads

Baseline
Compare

Histogram

System.Text.Json.Tests.Perf_Reader.ReadMultiSpanSequenceEmptyLoop(IsDataCompact: False, TestCase: LotsOfStrings)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 2.259731952287866 < 2.6008174520135223.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 130.5457155299407 (T) = (0 -2261.090375738182) / Math.Sqrt((5671.544057621862 / (292)) + (84.47492485223793 / (26))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (292) + (26) - 2, .975) and 0.2156310401462634 = (2882.6872192390347 - 2261.090375738182) / 2882.6872192390347 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: Json40KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 94.69709388888889 < 101.86590757634131.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 166.5964786935198 (T) = (0 -94629.82758149115) / Math.Sqrt((258714.8630284471 / (299)) + (122177.47442096598 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.11608059761034813 = (107057.077065694 - 94629.82758149115) / 107057.077065694 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadMultiSpanSequenceEmptyLoop(IsDataCompact: False, TestCase: LotsOfNumbers)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 4.1217934011269595 < 4.210749797654237.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 132.02276439724008 (T) = (0 -4125.002998327464) / Math.Sqrt((2012.2519217554434 / (299)) + (47.52557689673367 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.08561248142852024 = (4511.219712154244 - 4125.002998327464) / 4511.219712154244 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadReturnBytes(IsDataCompact: True, TestCase: BroadTree)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 10.746185525711663 < 11.160260850695954.
IsChangePoint: Marked as a change because one of 1/13/2023 9:23:19 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 76.95969719746603 (T) = (0 -10720.774833876516) / Math.Sqrt((56383.428883706045 / (264)) + (2551.7528893535837 / (26))) is greater than 1.9682351736146575 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (264) + (26) - 2, .975) and 0.11248480710133756 = (12079.539504965553 - 10720.774833876516) / 12079.539504965553 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: LotsOfStrings)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 2.181104705075928 < 2.6728047363436716.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 227.46872822373723 (T) = (0 -2185.265065914371) / Math.Sqrt((211.88228209514966 / (299)) + (172.54377736132818 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.2200329915010121 = (2801.740384019341 - 2185.265065914371) / 2801.740384019341 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadMultiSpanSequenceEmptyLoop(IsDataCompact: False, TestCase: Json40KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 96.97557683747411 < 105.02734941817408.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 126.22728570271991 (T) = (0 -97353.21685688829) / Math.Sqrt((3256031.897258457 / (258)) + (94343.00365338437 / (26))) is greater than 1.968411900500806 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (258) + (26) - 2, .975) and 0.14183548021047332 = (113443.5351402842 - 97353.21685688829) / 113443.5351402842 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadMultiSpanSequenceEmptyLoop(IsDataCompact: False, TestCase: BroadTree)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 14.9643532624283 < 15.300155003419905.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 79.24566332157987 (T) = (0 -14967.659412829367) / Math.Sqrt((77997.08909616455 / (299)) + (2949.803110717785 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.09291532672322114 = (16500.840388758596 - 14967.659412829367) / 16500.840388758596 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: BroadTree)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 8.91197200081133 < 9.099095502746701.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 50.673412203472104 (T) = (0 -8929.068829297834) / Math.Sqrt((18864.06996648758 / (258)) + (1512.8300441110728 / (26))) is greater than 1.968411900500806 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (258) + (26) - 2, .975) and 0.06105884115521359 = (9509.721397540601 - 8929.068829297834) / 9509.721397540601 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: LotsOfStrings)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 1.4960218342052214 < 1.660647615603352.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 123.77118790596913 (T) = (0 -1500.3365033788796) / Math.Sqrt((777.3693442193708 / (264)) + (24.016609800842925 / (26))) is greater than 1.9682351736146575 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (264) + (26) - 2, .975) and 0.13960159037287753 = (1743.7694986315607 - 1500.3365033788796) / 1743.7694986315607 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromUtf8Bytes - Duration of single invocation 36.24 μs 32.56 μs 0.90 0.01 False
DeserializeFromStream - Duration of single invocation 40.32 μs 35.49 μs 0.88 0.01 False
DeserializeFromReader - Duration of single invocation 52.17 μs 45.78 μs 0.88 0.12 False
DeserializeFromReader - Duration of single invocation 49.36 μs 44.99 μs 0.91 0.10 False
DeserializeFromStream - Duration of single invocation 40.27 μs 35.90 μs 0.89 0.01 False
DeserializeFromUtf8Bytes - Duration of single invocation 36.61 μs 32.70 μs 0.89 0.03 False

graph
graph
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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>.DeserializeFromUtf8Bytes(Mode: SourceGen)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 32.55703635420804 < 34.96916011472642.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 52.553807299811595 (T) = (0 -32536.13681767007) / Math.Sqrt((326156.0604664312 / (255)) + (129315.64277128677 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.11325826536016995 = (36691.7847064967 - 32536.13681767007) / 36691.7847064967 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;.DeserializeFromStream(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 35.493361126867086 < 37.907386423160176.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 52.21212041661678 (T) = (0 -35238.41208129663) / Math.Sqrt((338982.0918538678 / (228)) + (192872.69572857194 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.12266881455869327 = (40165.461647839795 - 35238.41208129663) / 40165.461647839795 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;.DeserializeFromReader(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 45.77888383561644 < 49.57958460843178.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 62.20323687331111 (T) = (0 -45537.80717475072) / Math.Sqrt((1105453.2505804147 / (255)) + (154489.892009575 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.12163282030321482 = (51843.70298360931 - 45537.80717475072) / 51843.70298360931 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;.DeserializeFromReader(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 44.99439371001495 < 48.421774948729286.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 72.61066244506473 (T) = (0 -45211.21599058644) / Math.Sqrt((1430579.4358567337 / (255)) + (96775.9283127259 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.13431048980416516 = (52225.67151167031 - 45211.21599058644) / 52225.67151167031 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;.DeserializeFromStream(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 35.902485682872026 < 37.98561956892765.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 39.49315799672238 (T) = (0 -35627.09113859462) / Math.Sqrt((346261.2316058629 / (254)) + (319878.4467066551 / (26))) is greater than 1.968533974640638 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (254) + (26) - 2, .975) and 0.1147218004149668 = (40243.94947858709 - 35627.09113859462) / 40243.94947858709 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;IndexViewModel&gt;.DeserializeFromUtf8Bytes(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 32.70478446508788 < 34.00961574428212.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 54.5612687413093 (T) = (0 -32649.015277371094) / Math.Sqrt((318494.8076507179 / (225)) + (84970.81252251963 / (26))) is greater than 1.9695368676402227 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (225) + (26) - 2, .975) and 0.10263071562237026 = (36383.03187523831 - 32649.015277371094) / 36383.03187523831 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented Feb 16, 2023

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<ImmutableDictionary<String, String>>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromReader - Duration of single invocation 64.76 μs 59.74 μs 0.92 0.20 False
DeserializeFromStream - Duration of single invocation 56.80 μs 52.27 μs 0.92 0.20 False
DeserializeFromReader - Duration of single invocation 64.31 μs 60.22 μs 0.94 0.15 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;ImmutableDictionary&lt;String, String&gt;&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<ImmutableDictionary<String, String>>.DeserializeFromReader(Mode: Reflection)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 59.737471447445685 < 61.38008197797251.
IsChangePoint: Marked as a change because one of 1/11/2023 12:41:22 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 26.632586220917773 (T) = (0 -59604.642999305805) / Math.Sqrt((3724838.222451713 / (254)) + (1105106.169971462 / (26))) is greater than 1.968533974640638 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (254) + (26) - 2, .975) and 0.09652281556765255 = (65972.49385633934 - 59604.642999305805) / 65972.49385633934 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;ImmutableDictionary&lt;String, String&gt;&gt;.DeserializeFromStream(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 52.26703833856895 < 54.30526707081219.
IsChangePoint: Marked as a change because one of 12/3/2022 11:38:23 AM, 2/7/2023 10:47:28 PM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 13.192671801617397 (T) = (0 -54221.53676583849) / Math.Sqrt((3115503.0956716896 / (226)) + (2415374.533627873 / (28))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (226) + (28) - 2, .975) and 0.07146068107014562 = (58394.44346667953 - 54221.53676583849) / 58394.44346667953 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;ImmutableDictionary&lt;String, String&gt;&gt;.DeserializeFromReader(Mode: SourceGen)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 60.217241916023156 < 60.88386427649895.
IsChangePoint: Marked as a change because one of 1/11/2023 5:39:19 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 19.001036706848755 (T) = (0 -59424.48977645925) / Math.Sqrt((4078653.063044299 / (228)) + (2757242.909697575 / (26))) is greater than 1.9694223653661387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (228) + (26) - 2, .975) and 0.10117785057168747 = (66113.73541946607 - 59424.48977645925) / 66113.73541946607 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in MicroBenchmarks.Serializers.Json_FromString<IndexViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SystemTextJson_Reflection_ - Duration of single invocation 36.54 μs 34.24 μs 0.94 0.04 False
SystemTextJson_SourceGen_ - Duration of single invocation 38.74 μs 34.01 μs 0.88 0.02 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromString&lt;IndexViewModel&gt;*'

Payloads

Baseline
Compare

Histogram

MicroBenchmarks.Serializers.Json_FromString<IndexViewModel>.SystemTextJson_Reflection_


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 34.24033610969737 < 36.06055931671005.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 52.81702989947651 (T) = (0 -34302.16005740299) / Math.Sqrt((370961.97513055656 / (254)) + (88803.02261023372 / (26))) is greater than 1.968533974640638 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (254) + (26) - 2, .975) and 0.09708060911970136 = (37990.27953531953 - 34302.16005740299) / 37990.27953531953 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### MicroBenchmarks.Serializers.Json_FromString&lt;IndexViewModel&gt;.SystemTextJson_SourceGen_

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 34.00547880861654 < 35.96526571005471.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 56.66037159948486 (T) = (0 -33974.742397284586) / Math.Sqrt((361473.0981557755 / (255)) + (100022.41842107788 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.10794351228885815 = (38085.86436544812 - 33974.742397284586) / 38085.86436544812 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<Nullable<DateTimeOffset>>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromReader - Duration of single invocation 345.03 ns 307.00 ns 0.89 0.50 False
DeserializeFromReader - Duration of single invocation 343.30 ns 284.07 ns 0.83 0.49 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;Nullable&lt;DateTimeOffset&gt;&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<Nullable<DateTimeOffset>>.DeserializeFromReader(Mode: SourceGen)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 306.9961206798243 < 325.9010238895357.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 17.821642285949935 (T) = (0 -292.5959836492688) / Math.Sqrt((230.5259479378356 / (255)) + (147.50314808209853 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.13510299678084112 = (338.30153481885407 - 292.5959836492688) / 338.30153481885407 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;Nullable&lt;DateTimeOffset&gt;&gt;.DeserializeFromReader(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 284.06744249106396 < 317.0404645236271.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 16.46357157214645 (T) = (0 -293.20397789015567) / Math.Sqrt((207.5911936424311 / (225)) + (165.32714724910474 / (26))) is greater than 1.9695368676402227 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (225) + (26) - 2, .975) and 0.13158013225431728 = (337.62928369117026 - 293.20397789015567) / 337.62928369117026 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Serialization.Tests.ReadJson<ArrayList>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DeserializeFromStream - Duration of single invocation 31.31 μs 26.21 μs 0.84 0.07 False
DeserializeFromStream - Duration of single invocation 30.48 μs 27.40 μs 0.90 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.ReadJson&lt;ArrayList&gt;*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Serialization.Tests.ReadJson<ArrayList>.DeserializeFromStream(Mode: SourceGen)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 26.21033808729828 < 30.397378612507886.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 28.92858305994839 (T) = (0 -27331.402258972634) / Math.Sqrt((727796.3230493392 / (255)) + (494970.565207625 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.13539970540523497 = (31611.60414799854 - 27331.402258972634) / 31611.60414799854 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Serialization.Tests.ReadJson&lt;ArrayList&gt;.DeserializeFromStream(Mode: Reflection)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 27.404282480021354 < 29.158576117605193.
IsChangePoint: Marked as a change because one of 1/11/2023 5:39:19 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 33.683052059057275 (T) = (0 -26995.602308145495) / Math.Sqrt((775182.2619006286 / (225)) + (384561.0593623135 / (26))) is greater than 1.9695368676402227 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (225) + (26) - 2, .975) and 0.14419744154397005 = (31544.194442289103 - 26995.602308145495) / 31544.194442289103 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SystemTextJson_Reflection_ - Duration of single invocation 39.28 μs 34.72 μs 0.88 0.02 False
SystemTextJson_SourceGen_ - Duration of single invocation 38.52 μs 34.19 μs 0.89 0.02 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromStream&lt;IndexViewModel&gt;*'

Payloads

Baseline
Compare

Histogram

MicroBenchmarks.Serializers.Json_FromStream<IndexViewModel>.SystemTextJson_Reflection_


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 34.717831291384165 < 37.55960939194199.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 54.629138534473704 (T) = (0 -35073.13003591618) / Math.Sqrt((409076.4285592823 / (254)) + (145016.8133000754 / (26))) is greater than 1.968533974640638 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (254) + (26) - 2, .975) and 0.116651224136866 = (39704.73610680637 - 35073.13003591618) / 39704.73610680637 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### MicroBenchmarks.Serializers.Json_FromStream&lt;IndexViewModel&gt;.SystemTextJson_SourceGen_

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 34.1873302442136 < 37.33879690172253.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 63.6504930992754 (T) = (0 -34545.823430994176) / Math.Sqrt((380923.62758012355 / (255)) + (135873.46295854796 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.13121779807603212 = (39763.50269893936 - 34545.823430994176) / 39763.50269893936 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
SystemTextJson_SourceGen_ - Duration of single invocation 413.20 μs 377.54 μs 0.91 0.02 False
SystemTextJson_Reflection_ - Duration of single invocation 405.47 μs 369.22 μs 0.91 0.01 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'MicroBenchmarks.Serializers.Json_FromString&lt;MyEventsListerViewModel&gt;*'

Payloads

Baseline
Compare

Histogram

MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>.SystemTextJson_SourceGen_


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 377.53924636895727 < 385.9715231999045.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 28.99462584701384 (T) = (0 -366051.4713089252) / Math.Sqrt((46242466.29410326 / (255)) + (46682209.186280996 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.100207550383792 = (406817.6738591867 - 366051.4713089252) / 406817.6738591867 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### MicroBenchmarks.Serializers.Json_FromString&lt;MyEventsListerViewModel&gt;.SystemTextJson_Reflection_

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 369.22003318562287 < 384.529797095405.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 38.81494970337117 (T) = (0 -365712.8331726417) / Math.Sqrt((39761499.233611934 / (255)) + (25354123.306801934 / (26))) is greater than 1.9685031265482282 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (255) + (26) - 2, .975) and 0.10142834994667461 = (406993.51370693545 - 365712.8331726417) / 406993.51370693545 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

Improvements in System.Text.Json.Tests.Perf_Segment

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ReadMultiSegmentSequence - Duration of single invocation 1.13 ms 987.63 μs 0.87 0.00 False
ReadMultiSegmentSequence - Duration of single invocation 110.69 μs 97.40 μs 0.88 0.00 False
ReadMultiSegmentSequence - Duration of single invocation 112.34 μs 97.46 μs 0.87 0.00 False
ReadSingleSegmentSequenceByN - Duration of single invocation 1.09 ms 957.15 μs 0.87 0.00 False
ReadMultiSegmentSequence - Duration of single invocation 1.13 ms 984.36 μs 0.87 0.00 False

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

Payloads

Baseline
Compare

Histogram

System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 4096, TestCase: Json400KB)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 987.630043478261 < 1.075411647987013.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 151.4657946094026 (T) = (0 -988510.1470989553) / Math.Sqrt((286063741.22348845 / (258)) + (4006182.0689561083 / (26))) is greater than 1.968411900500806 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (258) + (26) - 2, .975) and 0.14689678601560258 = (1158722.8026983314 - 988510.1470989553) / 1158722.8026983314 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 4096, TestCase: Json40KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 97.40161372395835 < 105.11934183758804.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 113.39039511252983 (T) = (0 -98107.31105157532) / Math.Sqrt((3307178.2776300507 / (299)) + (235486.93817502802 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14084423199899365 = (114190.36536278065 - 98107.31105157532) / 114190.36536278065 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 8192, TestCase: Json40KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 97.46233471051465 < 105.81077208101148.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 138.25188144901563 (T) = (0 -97574.0635158711) / Math.Sqrt((3028872.5320024663 / (258)) + (63613.60270908263 / (26))) is greater than 1.968411900500806 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (258) + (26) - 2, .975) and 0.14439367492482078 = (114040.83940975727 - 97574.0635158711) / 114040.83940975727 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 8192, TestCase: Json400KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 957.1526200980392 < 1.0401826349722225.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 188.31020169359178 (T) = (0 -959825.7425828838) / Math.Sqrt((19732358.439086776 / (299)) + (11560006.191164948 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.12295545990725167 = (1094386.5433349386 - 959825.7425828838) / 1094386.5433349386 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 8192, TestCase: Json400KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 984.3554016418364 < 1.0747325192393047.
IsChangePoint: Marked as a change because one of 1/21/2023 1:51:00 AM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 133.577143942242 (T) = (0 -985729.8764436225) / Math.Sqrt((356864647.0517649 / (258)) + (6978624.97463839 / (26))) is greater than 1.968411900500806 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (258) + (26) - 2, .975) and 0.14832117941128947 = (1157396.2538627544 - 985729.8764436225) / 1157396.2538627544 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented Feb 16, 2023

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

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

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ParseThenWrite - Duration of single invocation 6.17 μs 5.52 μs 0.90 0.00 False
ParseThenWrite - Duration of single invocation 8.18 μs 7.67 μs 0.94 0.00 False
ParseThenWrite - Duration of single invocation 2.35 ms 2.16 ms 0.92 0.19 False
ParseThenWrite - Duration of single invocation 22.68 μs 21.33 μs 0.94 0.00 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Document.Tests.Perf_ParseThenWrite*'

Payloads

Baseline
Compare

Histogram

System.Text.Json.Document.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: True, TestCase: LotsOfStrings)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 5.522078671482952 < 5.9719629078514815.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 85.17300879083379 (T) = (0 -5558.259849307948) / Math.Sqrt((2693.050679114506 / (299)) + (1722.0866693508588 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.1173251367917421 = (6297.063710532487 - 5558.259849307948) / 6297.063710532487 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Document.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: True, TestCase: LotsOfNumbers)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 7.669454305377395 < 7.7681154582881105.
IsChangePoint: Marked as a change because one of 11/3/2022 4:18:41 AM, 1/5/2023 10:03:03 PM, 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 62.22584166718554 (T) = (0 -7669.9089513029485) / Math.Sqrt((6748.325944563663 / (299)) + (702.8877776820098 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.05405123807891396 = (8108.1653257058715 - 7669.9089513029485) / 8108.1653257058715 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Document.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: True, TestCase: Json400KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 2.1580019883004926 < 2.228464460023076.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 6.037851784624658 (T) = (0 -2229440.3415096765) / Math.Sqrt((17138165774.637676 / (299)) + (23133029395.973907 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.07693196085470977 = (2415250.2816303927 - 2229440.3415096765) / 2415250.2816303927 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Document.Tests.Perf_ParseThenWrite.ParseThenWrite(IsDataIndented: True, TestCase: Json4KB)

```log

Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 21.326450682602207 < 21.469917170497705.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 66.7619503786349 (T) = (0 -21350.86806231586) / Math.Sqrt((35772.9428615102 / (292)) + (7313.551378985406 / (26))) is greater than 1.9674995188240387 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (292) + (26) - 2, .975) and 0.059119580554846826 = (22692.43532021496 - 21350.86806231586) / 22692.43532021496 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Run Information

Architecture arm64
OS ubuntu 20.04
Baseline 1b788f4dc3e3a8829488e52c032ad6a70671e070
Compare 765e3dbb2d3aa2b114d8c07e44ae2ca926df16b4
Diff Diff

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 1.10 ms 941.67 μs 0.86 0.00 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
python3 .\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: False, TestCase: Json400KB)


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 941.672690909091 < 1.0377305593834565.
IsChangePoint: Marked as a change because one of 2/8/2023 10:48:55 AM, 2/16/2023 5:39:51 AM falls between 2/7/2023 2:48:42 AM and 2/16/2023 5:39:51 AM.
IsImprovementStdDev: Marked as improvement because 233.2800374477007 (T) = (0 -942719.5639410454) / Math.Sqrt((60699036.36768143 / (299)) + (7705171.077004751 / (26))) is greater than 1.967335607330539 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (26) - 2, .975) and 0.14883803929420147 = (1107567.7808243753 - 942719.5639410454) / 1107567.7808243753 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

@AndyAyersMS
Copy link
Member

From dotnet/runtime#81758

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