dotnet / perf-autofiling-issues

A landing place for auto-filed performance issues before they receive triage
MIT License
9 stars 4 forks source link

[Perf] Windows/x86: 28 Regressions on 3/15/2023 12:03:45 AM #14230

Open performanceautofiler[bot] opened 1 year ago

performanceautofiler[bot] commented 1 year ago

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.IndexerSet<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[IList - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.IndexerSet(Int32).IList(Size%3a%20512).html>) 1.79 μs 1.93 μs 1.08 0.04 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IndexerSet&lt;Int32&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.IndexerSet<Int32>.IList(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 1.9278545507031217 > 1.8696751965170355. IsChangePoint: Marked as a change because one of 1/13/2023 4:37:08 PM, 2/16/2023 6:27:39 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -17.181289764269675 (T) = (0 -2036.8806039860408) / Math.Sqrt((127.91114110337419 / (27)) + (6779.9218892551135 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.1442804950453374 = (1780.0535907110238 - 2036.8806039860408) / 1780.0535907110238 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in PerfLabTests.CastingPerf2.CastingPerf

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[ObjFooIsObj - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj.html>) 313.36 μs 471.30 μs 1.50 0.21 False Trace Trace
[IFooFooIsIFoo - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo.html>) 311.83 μs 439.69 μs 1.41 0.15 False Trace Trace
[FooObjIsNull - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/PerfLabTests.CastingPerf2.CastingPerf.FooObjIsNull.html>) 313.10 μs 440.20 μs 1.41 0.23 False Trace Trace

graph graph graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'PerfLabTests.CastingPerf2.CastingPerf*'
### Payloads [Baseline]() [Compare]() ### Histogram #### PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 471.29540441176476 > 327.5377152267157. IsChangePoint: Marked as a change because one of 1/5/2023 11:35:29 PM, 1/13/2023 4:37:08 PM, 1/18/2023 6:24:13 PM, 1/30/2023 9:42:46 PM, 2/13/2023 6:54:14 PM, 2/16/2023 9:36:08 AM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -9.87746647933115 (T) = (0 -416272.60185726447) / Math.Sqrt((301659.2987248095 / (27)) + (3443803731.038984 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.3335257097917231 = (312159.4123013047 - 416272.60185726447) / 312159.4123013047 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. ```### Baseline BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0ABF5DB8 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0ABF63F0] test eax,eax jle short M00_L01 mov ecx,ds:[7184264] M00_L00: mov edx,7184274 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` ### Compare BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.ObjFooIsObj() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0A6B5F10 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0A6B6548] test eax,eax jle short M00_L01 mov ecx,ds:[6BA4264] M00_L00: mov edx,6BA4274 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` #### PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 439.6902430555556 > 327.4335025452488. IsChangePoint: Marked as a change because one of 1/5/2023 11:35:29 PM, 1/13/2023 4:37:08 PM, 1/18/2023 6:24:13 PM, 1/30/2023 9:42:46 PM, 2/13/2023 6:54:14 PM, 2/16/2023 9:36:08 AM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -9.940804201358329 (T) = (0 -413960.44587379904) / Math.Sqrt((465549.8998225453 / (27)) + (3240497896.3228536 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.32545257043550607 = (312316.3024519115 - 413960.44587379904) / 312316.3024519115 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. ```### Baseline BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0B3A5DB8 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0B3A63F0] test eax,eax jle short M00_L01 mov ecx,ds:[77E4264] M00_L00: mov edx,77E42C4 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` ### Compare BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.IFooFooIsIFoo() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0B145F10 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0B146548] test eax,eax jle short M00_L01 mov ecx,ds:[7644264] M00_L00: mov edx,76442C4 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` #### PerfLabTests.CastingPerf2.CastingPerf.FooObjIsNull ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 440.20011574074067 > 327.43071084323157. IsChangePoint: Marked as a change because one of 1/5/2023 11:35:29 PM, 1/13/2023 4:37:08 PM, 1/18/2023 6:24:13 PM, 1/30/2023 9:42:46 PM, 2/13/2023 6:54:14 PM, 2/16/2023 9:36:08 AM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -10.02879593079413 (T) = (0 -413647.7259266968) / Math.Sqrt((243121.96584593534 / (27)) + (3177247167.8340163 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.3253119308035932 = (312113.4853708625 - 413647.7259266968) / 312113.4853708625 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. ```### Baseline BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.FooObjIsNull() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0A495DB8 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0A4963F0] test eax,eax jle short M00_L01 mov ecx,ds:[6A2426C] M00_L00: mov edx,6A24274 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` ### Compare BDN Disasm ```assembly ; PerfLabTests.CastingPerf2.CastingPerf.FooObjIsNull() push ebp mov ebp,esp push esi xor esi,esi mov ecx,0A6B5F10 mov edx,0BE call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov eax,ds:[0A6B6548] test eax,eax jle short M00_L01 mov ecx,ds:[6C2426C] M00_L00: mov edx,6C24274 call CORINFO_HELP_ASSIGN_REF_ECX inc esi cmp esi,eax jl short M00_L00 M00_L01: pop esi pop ebp ret ; Total bytes of code 54 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.Sort<IntClass>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[List - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.Sort(IntClass).List(Size%3a%20512).html>) 41.15 μs 44.51 μs 1.08 0.07 False
[Array - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.Sort(IntClass).Array(Size%3a%20512).html>) 41.25 μs 44.28 μs 1.07 0.05 False

graph graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Sort&lt;IntClass&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.Sort<IntClass>.List(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 44.513792 > 43.02125342307692. IsChangePoint: Marked as a change because one of 2/9/2023 4:27:10 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -31.922316375504522 (T) = (0 -44492.919167198386) / Math.Sqrt((261245.3941879315 / (27)) + (65296.329755745865 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.08445517027743908 = (41027.90081752816 - 44492.919167198386) / 41027.90081752816 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. ```#### System.Collections.Sort<IntClass>.Array(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 44.282596000000005 > 42.975437750000005. IsChangePoint: Marked as a change because one of 2/9/2023 4:27:10 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -46.09109367628363 (T) = (0 -44307.51906309819) / Math.Sqrt((109189.3658550442 / (27)) + (68081.58097155804 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.08953236041717343 = (40666.547110297106 - 44307.51906309819) / 40666.547110297106 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.CtorFromCollectionNonGeneric<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Stack - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.CtorFromCollectionNonGeneric(String).Stack(Size%3a%20512).html>) 5.42 μs 6.42 μs 1.19 0.07 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CtorFromCollectionNonGeneric&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.CtorFromCollectionNonGeneric<String>.Stack(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 6.419893149284254 > 5.689196002959103. IsChangePoint: Marked as a change because one of 1/13/2023 4:18:46 AM, 2/9/2023 4:27:10 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -25.607809934040024 (T) = (0 -6392.060617137082) / Math.Sqrt((10603.944220733243 / (27)) + (28161.758021731846 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.1689219883953033 = (5468.338076103869 - 6392.060617137082) / 5468.338076103869 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.CreateAddAndClear<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[IDictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.CreateAddAndClear(String).IDictionary(Size%3a%20512).html>) 25.70 μs 28.31 μs 1.10 0.00 False
[ImmutableQueue - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.CreateAddAndClear(String).ImmutableQueue(Size%3a%20512).html>) 7.85 μs 8.42 μs 1.07 0.06 False
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.CreateAddAndClear(String).Dictionary(Size%3a%20512).html>) 23.31 μs 26.90 μs 1.15 0.00 False

graph graph graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndClear&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.CreateAddAndClear<String>.IDictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 28.312255565583637 > 27.017466630062746. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -55.386992674597124 (T) = (0 -28189.9566265766) / Math.Sqrt((14046.759988916227 / (27)) + (38742.44849898194 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.09010958732166072 = (25859.745620472684 - 28189.9566265766) / 25859.745620472684 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. ```#### System.Collections.CreateAddAndClear<String>.ImmutableQueue(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 8.418993111831442 > 8.245292881459143. IsChangePoint: Marked as a change because one of 2/16/2023 6:27:39 AM, 2/24/2023 9:01:57 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -10.535800019786675 (T) = (0 -8354.40697477935) / Math.Sqrt((9066.426810029776 / (27)) + (47060.880619757496 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.057416895736003885 = (7900.769326145817 - 8354.40697477935) / 7900.769326145817 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. ```#### System.Collections.CreateAddAndClear<String>.Dictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 26.90174351251158 > 24.550644493015174. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -78.54153128389338 (T) = (0 -26880.218667084606) / Math.Sqrt((20967.548445933156 / (27)) + (33412.12506035103 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.14393561195166715 = (23498.017184047883 - 26880.218667084606) / 23498.017184047883 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

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

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[ImmutableDictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.ContainsKeyFalse(Int32%2c%20Int32).ImmutableDictionary(Size%3a%20512).html>) 22.62 μs 24.51 μs 1.08 0.01 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsKeyFalse&lt;Int32, Int32&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.ContainsKeyFalse<Int32, Int32>.ImmutableDictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 24.514096244131455 > 23.859051479906817. IsChangePoint: Marked as a change because one of 1/20/2023 8:02:54 AM, 1/30/2023 9:42:46 PM, 2/9/2023 4:10:34 PM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -30.210634115313383 (T) = (0 -24502.666414224255) / Math.Sqrt((58504.64380142793 / (27)) + (28473.870658686516 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.07352061737172988 = (22824.58857121295 - 24502.666414224255) / 22824.58857121295 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.AddGivenSize<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.AddGivenSize(String).Dictionary(Size%3a%20512).html>) 16.70 μs 19.32 μs 1.16 0.00 False
[IDictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.AddGivenSize(String).IDictionary(Size%3a%20512).html>) 18.59 μs 20.71 μs 1.11 0.00 False

graph graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.AddGivenSize&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.AddGivenSize<String>.Dictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 19.323795843520784 > 17.58348829193151. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -60.69473261624852 (T) = (0 -19135.666499700994) / Math.Sqrt((27457.837584214598 / (27)) + (17397.32279845526 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.14416950924309999 = (16724.503096013956 - 19135.666499700994) / 16724.503096013956 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. ```#### System.Collections.AddGivenSize<String>.IDictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 20.713966500188466 > 19.532206512700608. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -53.59551213633464 (T) = (0 -20713.964044585195) / Math.Sqrt((15541.212089064074 / (27)) + (26196.568638465695 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.10806199326202164 = (18693.86746458598 - 20713.964044585195) / 18693.86746458598 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in PerfLabTests.LowLevelPerf

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[StaticDelegate - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/PerfLabTests.LowLevelPerf.StaticDelegate.html>) 280.65 μs 311.83 μs 1.11 0.03 False Trace Trace

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'PerfLabTests.LowLevelPerf*'
### Payloads [Baseline]() [Compare]() ### Histogram #### PerfLabTests.LowLevelPerf.StaticDelegate ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 311.83171568627455 > 294.6857335379465. IsChangePoint: Marked as a change because one of 2/24/2023 9:01:57 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -10.250440807698602 (T) = (0 -319259.9337642161) / Math.Sqrt((243583.31599394226 / (27)) + (433568374.1261579 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.13650817544304847 = (280913.0111534464 - 319259.9337642161) / 280913.0111534464 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. ```### Baseline BDN Disasm ```assembly ; PerfLabTests.LowLevelPerf.StaticDelegate() push ebp mov ebp,esp push edi push esi mov esi,ds:[74F41A0] xor edi,edi cmp dword ptr ds:[0B036390],0 jle short M00_L01 M00_L00: mov ecx,[esi+4] call dword ptr [esi+0C] inc edi cmp edi,ds:[0B036390] jl short M00_L00 M00_L01: pop esi pop edi pop ebp ret ; Total bytes of code 41 ``` ### Compare BDN Disasm ```assembly ; PerfLabTests.LowLevelPerf.StaticDelegate() push ebp mov ebp,esp push edi push esi mov esi,ds:[78641A0] xor edi,edi cmp dword ptr ds:[0B2F64E8],0 jle short M00_L01 M00_L00: mov ecx,[esi+4] call dword ptr [esi+0C] inc edi cmp edi,ds:[0B2F64E8] jl short M00_L00 M00_L01: pop esi pop edi pop ebp ret ; Total bytes of code 41 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)
performanceautofiler[bot] commented 1 year ago

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.CreateAddAndRemove<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.CreateAddAndRemove(String).Dictionary(Size%3a%20512).html>) 42.84 μs 47.63 μs 1.11 0.02 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndRemove&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.CreateAddAndRemove<String>.Dictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 47.63114043445122 > 44.7985239016834. IsChangePoint: Marked as a change because one of 1/11/2023 2:37:52 AM, 2/9/2023 4:27:10 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -14.851731131336035 (T) = (0 -47110.535305512225) / Math.Sqrt((257753.52186425324 / (27)) + (2747320.3072376144 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.10960100307085516 = (42457.18521804897 - 47110.535305512225) / 42457.18521804897 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.Tests.Perf_BitArray

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[BitArrayNot - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.Tests.Perf_BitArray.BitArrayNot(Size%3a%20512).html>) 10.76 ns 12.94 ns 1.20 0.23 False Trace Trace

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Tests.Perf_BitArray*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.Tests.Perf_BitArray.BitArrayNot(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 12.937617733244283 > 10.869537685648705. IsChangePoint: Marked as a change because one of 1/5/2023 11:35:29 PM, 1/18/2023 8:37:25 PM, 1/30/2023 9:42:46 PM, 2/13/2023 6:54:14 PM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -8.120494434168489 (T) = (0 -12.678377758477174) / Math.Sqrt((0.7232616930734643 / (27)) + (0.7917505336784598 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.17166813245628895 = (10.820792515623157 - 12.678377758477174) / 10.820792515623157 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. ```### Baseline BDN Disasm ```assembly ; System.Collections.Tests.Perf_BitArray.BitArrayNot() mov ecx,[ecx+4] cmp [ecx],ecx call dword ptr ds:[0A6CB150]; System.Collections.BitArray.Not() ret ; Total bytes of code 12 ``` ```assembly ; System.Collections.BitArray.Not() push ebp mov ebp,esp push edi push esi push ebx vzeroupper M01_L00: mov eax,[ecx+4] mov edx,[ecx+8] add edx,1F shr edx,5 cmp edx,7 ja near ptr M01_L01 lea esi,ds:[0AEAF2C0] mov esi,[esi+edx*4] lea edi,[M01_L00] add esi,edi jmp esi mov edi,[eax+4] cmp edi,6 jbe near ptr M01_L07 mov edx,[eax+20] not edx mov [eax+20],edx mov edi,[eax+4] cmp edi,5 jbe near ptr M01_L07 mov edx,[eax+1C] not edx mov [eax+1C],edx mov edi,[eax+4] cmp edi,4 jbe near ptr M01_L07 mov edx,[eax+18] not edx mov [eax+18],edx mov edi,[eax+4] cmp edi,3 jbe near ptr M01_L07 mov edx,[eax+14] not edx mov [eax+14],edx mov edi,[eax+4] cmp edi,2 jbe near ptr M01_L07 mov edx,[eax+10] not edx mov [eax+10],edx mov edi,[eax+4] cmp edi,1 jbe near ptr M01_L07 mov edx,[eax+0C] not edx mov [eax+0C],edx mov edi,[eax+4] test edi,edi je near ptr M01_L07 mov edx,[eax+8] not edx mov [eax+8],edx jmp short M01_L06 nop nop nop nop M01_L01: xor esi,esi cmp [eax],al lea edi,[eax+8] lea ebx,[edx-7] test ebx,ebx jbe short M01_L03 M01_L02: vpcmpeqd ymm0,ymm0,ymm0 vpxor ymm0,ymm0,[edi+esi*4] vmovups [edi+esi*4],ymm0 add esi,8 cmp esi,ebx jb short M01_L02 M01_L03: cmp esi,edx jae short M01_L06 mov edi,esi or edi,edx jl short M01_L05 mov edi,[eax+4] cmp edi,edx jl short M01_L05 nop nop nop nop nop nop nop nop nop nop M01_L04: mov edi,[eax+esi*4+8] not edi mov [eax+esi*4+8],edi inc esi cmp esi,edx jb short M01_L04 jmp short M01_L06 M01_L05: mov edi,[eax+4] cmp esi,edi jae short M01_L07 mov edi,[eax+esi*4+8] not edi mov [eax+esi*4+8],edi inc esi cmp esi,edx jb short M01_L05 M01_L06: inc dword ptr [ecx+0C] mov eax,ecx vzeroupper pop ebx pop esi pop edi pop ebp ret M01_L07: call CORINFO_HELP_RNGCHKFAIL int 3 ; Total bytes of code 314 ``` ### Compare BDN Disasm ```assembly ; System.Collections.Tests.Perf_BitArray.BitArrayNot() mov ecx,[ecx+4] cmp [ecx],ecx call dword ptr ds:[0AD49150]; System.Collections.BitArray.Not() ret ; Total bytes of code 12 ``` ```assembly ; System.Collections.BitArray.Not() push ebp mov ebp,esp push edi push esi push ebx vzeroupper M01_L00: mov eax,[ecx+4] mov edx,[ecx+8] add edx,1F shr edx,5 cmp edx,7 ja near ptr M01_L01 lea esi,ds:[0B26F200] mov esi,[esi+edx*4] lea edi,[M01_L00] add esi,edi jmp esi mov edi,[eax+4] cmp edi,6 jbe near ptr M01_L07 mov edx,[eax+20] not edx mov [eax+20],edx mov edi,[eax+4] cmp edi,5 jbe near ptr M01_L07 mov edx,[eax+1C] not edx mov [eax+1C],edx mov edi,[eax+4] cmp edi,4 jbe near ptr M01_L07 mov edx,[eax+18] not edx mov [eax+18],edx mov edi,[eax+4] cmp edi,3 jbe near ptr M01_L07 mov edx,[eax+14] not edx mov [eax+14],edx mov edi,[eax+4] cmp edi,2 jbe near ptr M01_L07 mov edx,[eax+10] not edx mov [eax+10],edx mov edi,[eax+4] cmp edi,1 jbe near ptr M01_L07 mov edx,[eax+0C] not edx mov [eax+0C],edx mov edi,[eax+4] test edi,edi je near ptr M01_L07 mov edx,[eax+8] not edx mov [eax+8],edx jmp short M01_L06 nop nop nop nop M01_L01: xor esi,esi cmp [eax],al lea edi,[eax+8] lea ebx,[edx-7] test ebx,ebx jbe short M01_L03 M01_L02: vpcmpeqd ymm0,ymm0,ymm0 vpxor ymm0,ymm0,[edi+esi*4] vmovups [edi+esi*4],ymm0 add esi,8 cmp esi,ebx jb short M01_L02 M01_L03: cmp esi,edx jae short M01_L06 mov edi,esi or edi,edx jl short M01_L05 mov edi,[eax+4] cmp edi,edx jl short M01_L05 nop nop nop nop nop nop nop nop nop nop M01_L04: mov edi,[eax+esi*4+8] not edi mov [eax+esi*4+8],edi inc esi cmp esi,edx jb short M01_L04 jmp short M01_L06 M01_L05: mov edi,[eax+4] cmp esi,edi jae short M01_L07 mov edi,[eax+esi*4+8] not edi mov [eax+esi*4+8],edi inc esi cmp esi,edx jb short M01_L05 M01_L06: inc dword ptr [ecx+0C] mov eax,ecx vzeroupper pop ebx pop esi pop edi pop ebp ret M01_L07: call CORINFO_HELP_RNGCHKFAIL int 3 ; Total bytes of code 314 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.IterateForEach<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[LinkedList - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.IterateForEach(Int32).LinkedList(Size%3a%20512).html>) 2.27 μs 2.55 μs 1.13 0.07 False
[IEnumerable - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.IterateForEach(Int32).IEnumerable(Size%3a%20512).html>) 2.10 μs 2.42 μs 1.15 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IterateForEach&lt;Int32&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.IterateForEach<Int32>.LinkedList(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 2.5521727831154513 > 2.297430831330282. IsChangePoint: Marked as a change because one of 2/14/2023 5:47:38 PM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -14.264546211389185 (T) = (0 -2493.8870155555196) / Math.Sqrt((2183.820056878283 / (27)) + (10485.769190094563 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.13263114976603188 = (2201.8527532733697 - 2493.8870155555196) / 2201.8527532733697 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. ```#### System.Collections.IterateForEach<Int32>.IEnumerable(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 2.4193940186505474 > 2.206445021006628. IsChangePoint: Marked as a change because one of 2/16/2023 9:36:08 AM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -23.262512950627627 (T) = (0 -2384.3382307772663) / Math.Sqrt((14.341360916414022 / (27)) + (4558.253727313554 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.13445516909720165 = (2101.7474253078863 - 2384.3382307772663) / 2101.7474253078863 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Drawing.Tests.Perf_Color

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[GetBrightness - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Drawing.Tests.Perf_Color.GetBrightness.html>) 820.52 ns 864.42 ns 1.05 0.02 False Trace Trace

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Drawing.Tests.Perf_Color*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Drawing.Tests.Perf_Color.GetBrightness ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 864.4207428542337 > 861.2773277086796. IsChangePoint: Marked as a change because one of 1/13/2023 4:37:08 PM, 2/9/2023 4:27:10 AM, 2/24/2023 9:01:57 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -90.86288412942443 (T) = (0 -866.1722151739887) / Math.Sqrt((2.174510704082418 / (27)) + (5.283508766621946 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.05546779880763191 = (820.6524312276589 - 866.1722151739887) / 820.6524312276589 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. ```### Baseline BDN Disasm ```assembly ; System.Drawing.Tests.Perf_Color.GetBrightness() push ebp mov ebp,esp push edi push esi push ebx sub esp,8 vzeroupper vxorps xmm0,xmm0,xmm0 vmovss dword ptr [ebp-10],xmm0 mov esi,ds:[755458C] xor edi,edi mov ebx,[esi+4] test ebx,ebx jle short M00_L03 M00_L00: mov ecx,edi shl ecx,4 lea ecx,[esi+ecx+8] call dword ptr ds:[0AFA3990]; System.Drawing.Color.GetBrightness() fstp dword ptr [ebp-14] vmovss xmm0,dword ptr [ebp-14] vaddss xmm0,xmm0,dword ptr [ebp-10] inc edi cmp ebx,edi jg short M00_L02 M00_L01: vmovss dword ptr [ebp-10],xmm0 fld dword ptr [ebp-10] lea esp,[ebp-0C] pop ebx pop esi pop edi pop ebp ret M00_L02: vmovss dword ptr [ebp-10],xmm0 jmp short M00_L00 M00_L03: vmovss xmm0,dword ptr [ebp-10] jmp short M00_L01 ; Total bytes of code 99 ``` ```assembly ; System.Drawing.Color.GetBrightness() push ebp mov ebp,esp push esi push ebx push eax vzeroupper movsx eax,word ptr [ecx+0E] test al,2 je short M01_L00 mov esi,[ecx] mov ebx,esi jmp short M01_L02 M01_L00: test al,1 je short M01_L01 movsx ecx,word ptr [ecx+0C] call dword ptr ds:[0B8ADA50]; System.Drawing.KnownColorTable.KnownColorToArgb(System.Drawing.KnownColor) mov ebx,eax jmp short M01_L02 M01_L01: xor ebx,ebx M01_L02: mov eax,ebx and eax,0FF0000 sar eax,10 mov edx,ebx and edx,0FF00 sar edx,8 movzx ecx,bl cmp eax,edx jle short M01_L03 jmp short M01_L04 M01_L03: mov ebx,eax mov eax,edx mov edx,ebx M01_L04: cmp ecx,eax jle short M01_L05 mov eax,ecx jmp short M01_L06 M01_L05: cmp ecx,edx cmovl edx,ecx M01_L06: add eax,edx vxorps xmm0,xmm0,xmm0 vcvtsi2ss xmm0,xmm0,eax vdivss xmm0,xmm0,ds:[0B8757BC] vmovss dword ptr [ebp-0C],xmm0 fld dword ptr [ebp-0C] pop ecx pop ebx pop esi pop ebp ret ; Total bytes of code 123 ``` ### Compare BDN Disasm ```assembly ; System.Drawing.Tests.Perf_Color.GetBrightness() push ebp mov ebp,esp push edi push esi push ebx sub esp,8 vzeroupper vxorps xmm0,xmm0,xmm0 vmovss dword ptr [ebp-10],xmm0 mov esi,ds:[706458C] xor edi,edi mov ebx,[esi+4] test ebx,ebx jle short M00_L03 M00_L00: mov ecx,edi shl ecx,4 lea ecx,[esi+ecx+8] call dword ptr ds:[0AD91990]; System.Drawing.Color.GetBrightness() fstp dword ptr [ebp-14] vmovss xmm0,dword ptr [ebp-14] vaddss xmm0,xmm0,dword ptr [ebp-10] inc edi cmp ebx,edi jg short M00_L02 M00_L01: vmovss dword ptr [ebp-10],xmm0 fld dword ptr [ebp-10] lea esp,[ebp-0C] pop ebx pop esi pop edi pop ebp ret M00_L02: vmovss dword ptr [ebp-10],xmm0 jmp short M00_L00 M00_L03: vmovss xmm0,dword ptr [ebp-10] jmp short M00_L01 ; Total bytes of code 99 ``` ```assembly ; System.Drawing.Color.GetBrightness() push ebp mov ebp,esp push esi push ebx push eax vzeroupper movsx eax,word ptr [ecx+0E] test al,2 je short M01_L00 mov esi,[ecx] mov ebx,esi jmp short M01_L02 M01_L00: test al,1 je short M01_L01 movsx ecx,word ptr [ecx+0C] call dword ptr ds:[0B36DA50]; System.Drawing.KnownColorTable.KnownColorToArgb(System.Drawing.KnownColor) mov ebx,eax jmp short M01_L02 M01_L01: xor ebx,ebx M01_L02: mov eax,ebx and eax,0FF0000 sar eax,10 mov edx,ebx and edx,0FF00 sar edx,8 movzx ecx,bl cmp eax,edx jle short M01_L03 jmp short M01_L04 M01_L03: mov ebx,eax mov eax,edx mov edx,ebx M01_L04: cmp ecx,eax jle short M01_L05 mov eax,ecx jmp short M01_L06 M01_L05: cmp ecx,edx cmovl edx,ecx M01_L06: add eax,edx vxorps xmm0,xmm0,xmm0 vcvtsi2ss xmm0,xmm0,eax vdivss xmm0,xmm0,ds:[0B3255BC] vmovss dword ptr [ebp-0C],xmm0 fld dword ptr [ebp-0C] pop ecx pop ebx pop esi pop ebp ret ; Total bytes of code 123 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.Concurrent.IsEmpty<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Queue - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.Concurrent.IsEmpty(String).Queue(Size%3a%20512).html>) 7.08 ns 8.36 ns 1.18 0.07 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Concurrent.IsEmpty&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.Concurrent.IsEmpty<String>.Queue(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 8.362520286689023 > 7.429796412158564. IsChangePoint: Marked as a change because one of 1/11/2023 2:37:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -21.054878155181473 (T) = (0 -7.932883805153415) / Math.Sqrt((0.01569982053502085 / (27)) + (0.027760691070252887 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.11358834454207896 = (7.123713034564414 - 7.932883805153415) / 7.123713034564414 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.TryAddDefaultSize<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.TryAddDefaultSize(String).Dictionary(Count%3a%20512).html>) 23.07 μs 26.46 μs 1.15 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryAddDefaultSize&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.TryAddDefaultSize<String>.Dictionary(Count: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 26.461114864864864 > 23.999620822365213. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -89.232341733338 (T) = (0 -26236.28477977573) / Math.Sqrt((24443.06881206638 / (27)) + (16890.0872206096 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.1487868033879053 = (22838.253975761116 - 26236.28477977573) / 22838.253975761116 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Numerics.Tests.Perf_VectorOf<Int16>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[DivisionOperatorBenchmark - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Numerics.Tests.Perf_VectorOf(Int16).DivisionOperatorBenchmark.html>) 40.50 ns 46.08 ns 1.14 0.04 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_VectorOf&lt;Int16&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Numerics.Tests.Perf_VectorOf<Int16>.DivisionOperatorBenchmark ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 46.078696927229316 > 42.54445467740933. IsChangePoint: Marked as a change because one of 1/11/2023 2:37:52 AM, 1/22/2023 2:59:30 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -38.247800705776584 (T) = (0 -45.56612945118136) / Math.Sqrt((0.023335654017801757 / (27)) + (0.4803064374069036 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.12026855735023115 = (40.674291135117485 - 45.56612945118136) / 40.674291135117485 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.MathBenchmarks.Single

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Max - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.MathBenchmarks.Single.Max.html>) 6.30 μs 7.21 μs 1.14 0.03 False Trace Trace

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.MathBenchmarks.Single*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.MathBenchmarks.Single.Max ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 7.213292702667704 > 6.558540675076124. IsChangePoint: Marked as a change because one of 1/13/2023 4:37:08 PM, 1/18/2023 6:24:13 PM, 1/30/2023 9:42:46 PM, 2/9/2023 4:27:10 AM, 2/16/2023 9:36:08 AM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -10.17838837519134 (T) = (0 -7014.251250577918) / Math.Sqrt((241.88785946661923 / (27)) + (173157.7474149677 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.12175406390071324 = (6252.931436849023 - 7014.251250577918) / 6252.931436849023 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. ```### Baseline BDN Disasm ```assembly ; System.MathBenchmarks.Single.Max() call dword ptr ds:[0B0E17F8]; System.MathBenchmarks.Single.MaxTest() ret ; Total bytes of code 7 ``` ```assembly ; System.MathBenchmarks.Single.MaxTest() push ebp mov ebp,esp push esi sub esp,1C vzeroupper vxorps xmm4,xmm4,xmm4 vmovdqu xmmword ptr [ebp-20],xmm4 xor eax,eax mov [ebp-10],eax mov [ebp-0C],eax vxorps xmm0,xmm0,xmm0 vmovss xmm1,dword ptr ds:[0B91EFE0] xor ecx,ecx vmovss xmm2,dword ptr ds:[0B91EFE4] M01_L00: vaddss xmm1,xmm1,xmm2 vucomiss xmm1,dword ptr ds:[0B91EFE8] jp short M01_L03 jne short M01_L03 vmovss xmm3,dword ptr ds:[0B91EFE8] vmovd edx,xmm3 test edx,edx jl short M01_L04 M01_L01: vmovaps xmm3,xmm1 M01_L02: vaddss xmm0,xmm0,xmm3 inc ecx cmp ecx,1388 jl short M01_L00 vmovss xmm3,dword ptr ds:[0B91EFEC] vmovss dword ptr [ebp-8],xmm0 vsubss xmm1,xmm3,xmm0 vandps xmm1,xmm1,ds:[0B91EFF0] vucomiss xmm1,dword ptr ds:[0B91F000] ja short M01_L05 lea esp,[ebp-4] pop esi pop ebp ret M01_L03: vmovss xmm3,dword ptr ds:[0B91EFE8] vucomiss xmm3,xmm1 jbe short M01_L01 M01_L04: vmovss xmm3,dword ptr ds:[0B91EFE8] jmp short M01_L02 M01_L05: push 2 lea ecx,[ebp-20] mov edx,20 call dword ptr ds:[0A9AD4E0] mov ecx,5E71 mov edx,0B0D14F4 call CORINFO_HELP_STRCNS mov edx,eax lea ecx,[ebp-20] call dword ptr ds:[0A9AD5D0] vmovss xmm0,dword ptr ds:[0B91EFEC] sub esp,4 vmovss dword ptr [esp],xmm0 mov ecx,5F11 mov edx,0B0D14F4 call CORINFO_HELP_STRCNS push eax lea ecx,[ebp-20] mov edx,0A call dword ptr ds:[0B9BBA08] mov ecx,5E9B mov edx,0B0D14F4 call CORINFO_HELP_STRCNS mov edx,eax lea ecx,[ebp-20] call dword ptr ds:[0A9AD5D0] push dword ptr [ebp-8] mov ecx,5F11 mov edx,0B0D14F4 call CORINFO_HELP_STRCNS push eax lea ecx,[ebp-20] mov edx,0A call dword ptr ds:[0B9BBA08] mov ecx,offset MT_System.Exception call CORINFO_HELP_NEWSFAST mov esi,eax lea ecx,[ebp-20] call dword ptr ds:[0A9AD570] mov edx,eax mov ecx,esi call dword ptr ds:[8805C18] mov ecx,esi call CORINFO_HELP_THROW int 3 ; Total bytes of code 349 ``` ### Compare BDN Disasm ```assembly ; System.MathBenchmarks.Single.Max() call dword ptr ds:[0ADDF7F8]; System.MathBenchmarks.Single.MaxTest() ret ; Total bytes of code 7 ``` ```assembly ; System.MathBenchmarks.Single.MaxTest() push ebp mov ebp,esp push esi sub esp,1C vzeroupper vxorps xmm4,xmm4,xmm4 vmovdqu xmmword ptr [ebp-20],xmm4 xor eax,eax mov [ebp-10],eax mov [ebp-0C],eax vxorps xmm0,xmm0,xmm0 vmovss xmm1,dword ptr ds:[0B74EF20] xor ecx,ecx vmovss xmm2,dword ptr ds:[0B74EF24] M01_L00: vaddss xmm1,xmm1,xmm2 vucomiss xmm1,dword ptr ds:[0B74EF28] jp short M01_L03 jne short M01_L03 vmovss xmm3,dword ptr ds:[0B74EF28] vmovd edx,xmm3 test edx,edx jl short M01_L04 M01_L01: vmovaps xmm3,xmm1 M01_L02: vaddss xmm0,xmm0,xmm3 inc ecx cmp ecx,1388 jl short M01_L00 vmovss xmm3,dword ptr ds:[0B74EF2C] vmovss dword ptr [ebp-8],xmm0 vsubss xmm1,xmm3,xmm0 vandps xmm1,xmm1,ds:[0B74EF30] vucomiss xmm1,dword ptr ds:[0B74EF40] ja short M01_L05 lea esp,[ebp-4] pop esi pop ebp ret M01_L03: vmovss xmm3,dword ptr ds:[0B74EF28] vucomiss xmm3,xmm1 jbe short M01_L01 M01_L04: vmovss xmm3,dword ptr ds:[0B74EF28] jmp short M01_L02 M01_L05: push 2 lea ecx,[ebp-20] mov edx,20 call dword ptr ds:[0A8D9BA0] mov ecx,5E71 mov edx,0AF0164C call CORINFO_HELP_STRCNS mov edx,eax lea ecx,[ebp-20] call dword ptr ds:[0A8D9C90] vmovss xmm0,dword ptr ds:[0B74EF2C] sub esp,4 vmovss dword ptr [esp],xmm0 mov ecx,5F11 mov edx,0AF0164C call CORINFO_HELP_STRCNS push eax lea ecx,[ebp-20] mov edx,0A call dword ptr ds:[0B7EBA08] mov ecx,5E9B mov edx,0AF0164C call CORINFO_HELP_STRCNS mov edx,eax lea ecx,[ebp-20] call dword ptr ds:[0A8D9C90] push dword ptr [ebp-8] mov ecx,5F11 mov edx,0AF0164C call CORINFO_HELP_STRCNS push eax lea ecx,[ebp-20] mov edx,0A call dword ptr ds:[0B7EBA08] mov ecx,offset MT_System.Exception call CORINFO_HELP_NEWSFAST mov esi,eax lea ecx,[ebp-20] call dword ptr ds:[0A8D9C30] mov edx,eax mov ecx,esi call dword ptr ds:[86A5C18] mov ecx,esi call CORINFO_HELP_THROW int 3 ; Total bytes of code 349 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)
performanceautofiler[bot] commented 1 year ago

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.TryAddGiventSize<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.TryAddGiventSize(String).Dictionary(Count%3a%20512).html>) 16.69 μs 18.78 μs 1.13 0.01 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryAddGiventSize&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.TryAddGiventSize<String>.Dictionary(Count: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 18.783798876693535 > 17.523561646076775. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -61.42363027668624 (T) = (0 -19075.408594171287) / Math.Sqrt((24688.399463999496 / (27)) + (15124.54709804689 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.1371140877086465 = (16775.281214402494 - 19075.408594171287) / 16775.281214402494 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Tests.Perf_String

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Replace_Char - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Tests.Perf_String.Replace_Char(text%3a%20%22Hello%22%2c%20oldChar%3a%20%27a%27%2c%20newChar%3a%20%27b%27).html>) 6.07 ns 7.45 ns 1.23 0.06 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_String*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Tests.Perf_String.Replace_Char(text: "Hello", oldChar: 'a', newChar: 'b') ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 7.451454249465632 > 6.380062634274648. IsChangePoint: Marked as a change because one of 1/20/2023 8:02:54 AM, 2/24/2023 9:01:57 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -10.967737170421128 (T) = (0 -6.94571876851078) / Math.Sqrt((0.0006975614610911383 / (27)) + (0.19256050654209342 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.14247947344371178 = (6.079512962779707 - 6.94571876851078) / 6.079512962779707 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Linq.Tests.Perf_Enumerable

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Repeat - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Linq.Tests.Perf_Enumerable.Repeat.html>) 399.39 ns 426.77 ns 1.07 0.04 False Trace Trace

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_Enumerable*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Linq.Tests.Perf_Enumerable.Repeat ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 426.7650121118042 > 419.4511613848272. IsChangePoint: Marked as a change because one of 1/30/2023 9:42:46 PM, 2/16/2023 6:27:39 AM, 2/24/2023 9:01:57 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -14.429129425775198 (T) = (0 -442.04189175867367) / Math.Sqrt((1.730350982217027 / (27)) + (259.3252264560873 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.10469284706368795 = (400.1491391327792 - 442.04189175867367) / 400.1491391327792 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. ```### Baseline BDN Disasm ```assembly ; System.Linq.Tests.Perf_Enumerable.Repeat() push ebp mov ebp,esp push edi push esi mov esi,ecx mov ecx,offset MT_System.Linq.Enumerable+RepeatIterator`1[[System.Int32, System.Private.CoreLib]] call CORINFO_HELP_NEWSFAST mov edi,eax call CORINFO_HELP_GETCURRENTMANAGEDTHREADID mov [edi+4],eax xor edx,edx mov [edi+0C],edx mov dword ptr [edi+10],64 mov edx,[esi+4] mov ecx,edi call dword ptr ds:[0AE0FA80]; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1, BenchmarkDotNet.Engines.Consumer) pop esi pop edi pop ebp ret ; Total bytes of code 54 ``` ```assembly ; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1, BenchmarkDotNet.Engines.Consumer) push ebp mov ebp,esp push esi sub esp,18 xor eax,eax mov [ebp-18],eax mov [ebp-14],eax mov [ebp-10],eax mov [ebp-0C],eax mov esi,edx call dword ptr ds:[8302A8] mov ecx,eax mov [ebp-1C],ecx call dword ptr ds:[8302AC] test eax,eax je short M01_L01 M01_L00: mov ecx,[ebp-1C] call dword ptr ds:[8302B0] mov [esi+24],eax mov ecx,[ebp-1C] call dword ptr ds:[8302AC] test eax,eax jne short M01_L00 M01_L01: mov ecx,[ebp-1C] call dword ptr ds:[8302B4] jmp short M01_L03 cmp dword ptr [ebp-1C],0 je short M01_L02 mov ecx,[ebp-1C] call dword ptr ds:[8302B4] M01_L02: pop eax jmp eax M01_L03: lea esp,[ebp-4] pop esi pop ebp ret ; Total bytes of code 104 ``` ### Compare BDN Disasm ```assembly ; System.Linq.Tests.Perf_Enumerable.Repeat() push ebp mov ebp,esp push edi push esi mov esi,ecx mov ecx,offset MT_System.Linq.Enumerable+RepeatIterator`1[[System.Int32, System.Private.CoreLib]] call CORINFO_HELP_NEWSFAST mov edi,eax call CORINFO_HELP_GETCURRENTMANAGEDTHREADID mov [edi+4],eax xor edx,edx mov [edi+0C],edx mov dword ptr [edi+10],64 mov edx,[esi+4] mov ecx,edi call dword ptr ds:[0B39BA80]; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1, BenchmarkDotNet.Engines.Consumer) pop esi pop edi pop ebp ret ; Total bytes of code 54 ``` ```assembly ; BenchmarkDotNet.Engines.ConsumerExtensions.Consume[[System.Int32, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1, BenchmarkDotNet.Engines.Consumer) push ebp mov ebp,esp push esi sub esp,18 xor eax,eax mov [ebp-18],eax mov [ebp-14],eax mov [ebp-10],eax mov [ebp-0C],eax mov esi,edx call dword ptr ds:[0B30290] mov ecx,eax mov [ebp-1C],ecx call dword ptr ds:[0B30294] test eax,eax je short M01_L01 M01_L00: mov ecx,[ebp-1C] call dword ptr ds:[0B30298] mov [esi+24],eax mov ecx,[ebp-1C] call dword ptr ds:[0B30294] test eax,eax jne short M01_L00 M01_L01: mov ecx,[ebp-1C] call dword ptr ds:[0B3029C] jmp short M01_L03 cmp dword ptr [ebp-1C],0 je short M01_L02 mov ecx,[ebp-1C] call dword ptr ds:[0B3029C] M01_L02: pop eax jmp eax M01_L03: lea esp,[ebp-4] pop esi pop ebp ret ; Total bytes of code 104 ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.IterateForNonGeneric<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[ArrayList - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.IterateForNonGeneric(Int32).ArrayList(Size%3a%20512).html>) 1.54 μs 1.76 μs 1.15 0.08 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IterateForNonGeneric&lt;Int32&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.IterateForNonGeneric<Int32>.ArrayList(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 1.7618837040800963 > 1.6116634510822376. IsChangePoint: Marked as a change because one of 1/13/2023 4:37:08 PM, 1/30/2023 9:42:46 PM, 2/20/2023 10:31:48 AM, 3/6/2023 11:14:52 AM, 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -18.06220435893953 (T) = (0 -1729.4918504717743) / Math.Sqrt((73.05334624786988 / (27)) + (3414.787276951601 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.12479456490206009 = (1537.6068701242057 - 1729.4918504717743) / 1537.6068701242057 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Run Information

Name Value
Architecture x86
OS Windows 10.0.18362
Queue TigerWindows
Baseline a78f9bde2edd384f5d26c9d394eb7fcc5f48a664
Compare 1cfda5e9a887d39004644c2f96a87b31fcca0ac7
Diff Diff
Configs CompliationMode:tiered, RunKind:micro

Regressions in System.Collections.IndexerSet<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
[Dictionary - Duration of single invocation](<https://pvscmdupload.z22.web.core.windows.net/reports/allTestHistory/refs/heads/main_x86_Windows 10.0.18362/System.Collections.IndexerSet(String).Dictionary(Size%3a%20512).html>) 15.47 μs 18.73 μs 1.21 0.03 False

graph Test Report

Repro

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

Payloads

Baseline Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IndexerSet&lt;String&gt;*'
### Payloads [Baseline]() [Compare]() ### Histogram #### System.Collections.IndexerSet<String>.Dictionary(Size: 512) ```log ``` ### Description of detection logic ```IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small. 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. IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline. IsRegressionWindowed: Marked as regression because 18.733560201660733 > 16.597459449188865. IsChangePoint: Marked as a change because one of 3/14/2023 8:42:09 PM, 3/21/2023 3:33:39 AM falls between 3/11/2023 9:11:51 PM and 3/21/2023 3:33:39 AM. IsRegressionStdDev: Marked as regression because -55.53377425624785 (T) = (0 -18737.262814805315) / Math.Sqrt((26972.38755278577 / (27)) + (53266.67954753309 / (31))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (27) + (31) - 2, .025) and -0.1827261100570058 = (15842.436093595841 - 18737.262814805315) / 15842.436093595841 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. ``` ### Docs [Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md) [Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)