Skip to content

Regressions in System.Text.Json #77731

Closed
Closed
@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture x64
OS ubuntu 18.04
Baseline 5108757b997c59ab8ba1fc5309ab0d4e730e2b77
Compare f4b715f1cfadcbf85486f369724528c051be5733
Diff Diff

Regressions in System.Text.Json.Tests.Perf_Deep

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
WriteDeepUtf8 - Duration of single invocation 3.64 ms 3.87 ms 1.07 0.00 False
WriteDeepUtf8 - Duration of single invocation 3.46 ms 3.76 ms 1.09 0.00 False
WriteDeepUtf16 - Duration of single invocation 3.40 ms 3.70 ms 1.09 0.01 False
WriteDeepUtf16 - Duration of single invocation 3.56 ms 3.97 ms 1.12 0.01 False

graph
graph
graph
graph
Test Report

Repro

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

Related Issues

Regressions

Improvements

Payloads

Baseline
Compare

Histogram

Edge Detector Info

Collection Data

System.Text.Json.Tests.Perf_Deep.WriteDeepUtf8(Formatted: False, SkipValidation: False)


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 3.8734119681318675 > 3.7982622619927544.
IsChangePoint: Marked as a change because one of 9/1/2022 8:04:48 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -29.823513559608447 (T) = (0 -3899533.7147466913) / Math.Sqrt((1338281149.2980132 / (19)) + (839361701.5035698 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.08130778169067243 = (3606312.4494023323 - 3899533.7147466913) / 3606312.4494023323 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Deep.WriteDeepUtf8(Formatted: False, SkipValidation: True)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 3.7595468694638687 > 3.630351659113247.
IsChangePoint: Marked as a change because one of 8/30/2022 6:17:03 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -31.067833668953444 (T) = (0 -3753619.655967878) / Math.Sqrt((1645618186.3782263 / (19)) + (499084908.15090096 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.09131750403854397 = (3439530.331069724 - 3753619.655967878) / 3439530.331069724 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Deep.WriteDeepUtf16(Formatted: False, SkipValidation: True)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 3.7012691194029848 > 3.5771690629452064.
IsChangePoint: Marked as a change because one of 9/1/2022 8:04:48 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -25.241653881229652 (T) = (0 -3718435.170589457) / Math.Sqrt((2548032015.219848 / (19)) + (698574163.7329098 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.09261932283453321 = (3403230.28604591 - 3718435.170589457) / 3403230.28604591 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Deep.WriteDeepUtf16(Formatted: False, SkipValidation: False)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 3.9698673566137566 > 3.7799297045797102.
IsChangePoint: Marked as a change because one of 8/30/2022 6:17:03 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -24.59061266652544 (T) = (0 -3931803.106452499) / Math.Sqrt((2622636185.9814215 / (18)) + (965845601.9311386 / (32))) is less than -2.010634757623041 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (18) + (32) - 2, .025) and -0.09044745337023316 = (3605678.6544830943 - 3931803.106452499) / 3605678.6544830943 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
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 x64
OS ubuntu 18.04
Baseline 5108757b997c59ab8ba1fc5309ab0d4e730e2b77
Compare f4b715f1cfadcbf85486f369724528c051be5733
Diff Diff

Regressions in System.Text.Json.Tests.Perf_Basic

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
WriteBasicUtf16 - Duration of single invocation 524.71 ns 564.91 ns 1.08 0.01 False
WriteBasicUtf16 - Duration of single invocation 568.75 ns 602.52 ns 1.06 0.01 False
WriteBasicUtf16 - Duration of single invocation 622.51 ns 656.97 ns 1.06 0.02 False
WriteBasicUtf16 - Duration of single invocation 655.82 ns 699.62 ns 1.07 0.01 False

graph
graph
graph
graph
Test Report

Repro

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

Related Issues

Regressions

Improvements

Payloads

Baseline
Compare

Histogram

Edge Detector Info

Collection Data

System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: False, SkipValidation: True, DataSize: 10)


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 564.913426473831 > 552.2877275058948.
IsChangePoint: Marked as a change because one of 8/30/2022 6:17:03 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -111.20795185811622 (T) = (0 -564.5294758586147) / Math.Sqrt((0.574146619485639 / (19)) + (2.824872289171864 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.07274383263309499 = (526.2481672562528 - 564.5294758586147) / 526.2481672562528 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: False, SkipValidation: False, DataSize: 10)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 602.5196316790704 > 596.4717014989104.
IsChangePoint: Marked as a change because one of 8/30/2022 6:17:03 PM, 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -45.84598308331923 (T) = (0 -601.9742803277488) / Math.Sqrt((3.4087175580580213 / (19)) + (10.703707714688223 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.05774893987689856 = (569.1088476985918 - 601.9742803277488) / 569.1088476985918 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: True, DataSize: 10)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 656.9741530259505 > 654.695848473003.
IsChangePoint: Marked as a change because one of 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -18.560602735184723 (T) = (0 -661.3095496292591) / Math.Sqrt((1.823946258378309 / (19)) + (129.77758124716547 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.060654966745831866 = (623.4916823688724 - 661.3095496292591) / 623.4916823688724 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: False, DataSize: 10)

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionWindowed: Marked as regression because 699.6189843739982 > 690.3751567715309.
IsChangePoint: Marked as a change because one of 10/25/2022 8:17:52 AM, 11/1/2022 2:33:16 AM falls between 10/23/2022 1:14:54 PM and 11/1/2022 2:33:16 AM.
IsRegressionStdDev: Marked as regression because -20.590457728192366 (T) = (0 -696.0610635817284) / Math.Sqrt((6.432776472235719 / (19)) + (95.46031647417387 / (32))) is less than -2.0095752371279447 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (19) + (32) - 2, .025) and -0.05698600837296014 = (658.5338481946314 - 696.0610635817284) / 658.5338481946314 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions