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/x64: 9 Regressions on 11/7/2022 8:57:30 PM #9767

Closed
performanceautofiler bot opened this issue Nov 15, 2022 · 2 comments
Closed

[Perf] Linux/x64: 9 Regressions on 11/7/2022 8:57:30 PM #9767

performanceautofiler bot opened this issue Nov 15, 2022 · 2 comments

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Nov 15, 2022

Run Information

Architecture x64
OS ubuntu 18.04
Baseline bfa4812aec806f09f1e2927939ba98118e5e5bf7
Compare 2aebbf75167b3aa21cae23e6fd702688dd724663
Diff Diff

Regressions in System.IO.Tests.StreamReaderReadLineTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ReadLine - Duration of single invocation 186.22 μs 412.70 μs 2.22 0.03 False
ReadLine - Duration of single invocation 341.78 μs 3.43 ms 10.05 0.01 False
ReadLine - Duration of single invocation 179.87 μs 431.53 μs 2.40 0.03 False
ReadLine - Duration of single invocation 193.94 μs 420.23 μs 2.17 0.02 False
ReadLine - Duration of single invocation 183.21 μs 405.54 μs 2.21 0.02 False
ReadLine - Duration of single invocation 350.21 μs 1.77 ms 5.04 0.02 False
ReadLine - Duration of single invocation 189.79 μs 488.54 μs 2.57 0.02 False
ReadLine - Duration of single invocation 258.92 μs 785.93 μs 3.04 0.02 False

Test Report

Repro

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

Related Issues

Regressions

Improvements

Payloads

Baseline
Compare

Histogram

Edge Detector Info

Collection Data

System.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [ 129, 1024])


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 412.7004763513513 > 195.30242617187503.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -114.16109853405256 (T) = (0 -409461.362222224) / Math.Sqrt((10200457.01785741 / (16)) + (120578924.45658489 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -1.1942262558807628 = (186608.54190620655 - 409461.362222224) / 186608.54190620655 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [   0,    0])

```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.4332808276785713 > 360.93632898028153.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -221.66403472356376 (T) = (0 -3433572.327503217) / Math.Sqrt((5651678.012613353 / (16)) + (7182640262.658805 / (37))) is less than -2.007583770314729 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (37) - 2, .025) and -9.02961912502031 = (342343.24202179146 - 3433572.327503217) / 342343.24202179146 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [  33,  128])

```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 431.5298188947877 > 188.7258521655826.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -121.2242221720778 (T) = (0 -421985.96831967507) / Math.Sqrt((16849059.128583953 / (16)) + (109926281.4238414 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -1.329049241618447 = (181183.78983968528 - 421985.96831967507) / 181183.78983968528 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [1025, 2048])

```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 420.233824122807 > 204.4627066285748.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -121.7263416902526 (T) = (0 -416964.32994941826) / Math.Sqrt((5532068.475304181 / (16)) + (110716971.3275202 / (37))) is less than -2.007583770314729 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (37) - 2, .025) and -1.1430653942059348 = (194564.445432574 - 416964.32994941826) / 194564.445432574 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [   0, 1024])

```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 405.537332127193 > 192.16344224576932.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -128.1510426683338 (T) = (0 -401729.1869509722) / Math.Sqrt((4148976.274898606 / (16)) + (101098915.80566274 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -1.1982233691528121 = (182751.75880138026 - 401729.1869509722) / 182751.75880138026 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [   1,    1])

```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 1.7665007675925928 > 368.95039431360476.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -194.7923545102245 (T) = (0 -1766529.30789538) / Math.Sqrt((3647898.55249176 / (16)) + (1998002289.9246986 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -4.0327906937146585 = (351003.92911264114 - 1766529.30789538) / 351003.92911264114 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [   9,   32])

```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 488.5388145926339 > 199.2382042695783.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -144.94711183372647 (T) = (0 -486718.26342218067) / Math.Sqrt((8882195.319291385 / (16)) + (130214668.56841831 / (36))) is less than -2.0085591120996775 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (36) - 2, .025) and -1.552949166496562 = (190649.41433601244 - 486718.26342218067) / 190649.41433601244 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.IO.Tests.StreamReaderReadLineTests.ReadLine(LineLengthRange: [   1,    8])

```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 785.9302309210525 > 271.7106597396846.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -222.16206086259075 (T) = (0 -782958.3839327281) / Math.Sqrt((6724690.9259053925 / (16)) + (195152031.0241984 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -2.0194795816746938 = (259302.4270422375 - 782958.3839327281) / 259302.4270422375 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 bfa4812aec806f09f1e2927939ba98118e5e5bf7
Compare 2aebbf75167b3aa21cae23e6fd702688dd724663
Diff Diff

Regressions in System.IO.Tests.Perf_File

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ReadAllLines - Duration of single invocation 67.11 μs 146.00 μs 2.18 0.02 False

Test Report

Repro

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

Related Issues

Regressions

Improvements

Payloads

Baseline
Compare

Histogram

Edge Detector Info

Collection Data

System.IO.Tests.Perf_File.ReadAllLines


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 146.00025471866098 > 70.6210121217216.
IsChangePoint: Marked as a change because one of 11/7/2022 4:10:19 PM, 11/14/2022 7:25:10 PM falls between 11/5/2022 10:22:58 PM and 11/14/2022 7:25:10 PM.
IsRegressionStdDev: Marked as regression because -141.7026634526361 (T) = (0 -145668.55775891346) / Math.Sqrt((693013.6958837308 / (16)) + (9973079.149025833 / (38))) is less than -2.0066468050606243 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (38) - 2, .025) and -1.1640510278589895 = (67312.90338519933 - 145668.55775891346) / 67312.90338519933 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

@naricc
Copy link

naricc commented Nov 16, 2022

@stephentoub @GrabYourPitchforks It looks like we have a regression from this change: dotnet/runtime@02c3e95

@lambdageek @vargaz Any idea what is different about mono that this change would cause a regression like this? Or who else I should ask? I didn't see anything comparing the runtimes myself, but didn't have time to do a real deep dive.

@naricc naricc removed the untriaged label Nov 16, 2022
@stephentoub
Copy link
Member

stephentoub commented Nov 16, 2022

The tests for very small line lengths are expected; those are the same as dotnet/runtime#78401 and dotnet/runtime#78176.

The longer line lengths are not expected; on other platforms, including wasm, they showed significant improvements.

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