Skip to content

[Perf] Windows/x64: 1 Regression on 1/3/2023 5:57:54 PM #11444

Closed
@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline ac2ffdf4ff87e7e3a5506a8ef69ce633f6fcda85
Compare a6040aed0764e925b1b15449a1028bc52495c9a4
Diff Diff

Regressions in Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Get - Duration of single invocation 7.59 ms 8.05 ms 1.06 0.19 False 80039583.33333333 84250000 1.052604180223327 Trace Trace

graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks*'

Payloads

Baseline
Compare

Histogram

Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks.Get(ConfigurationProvidersCount: 16, KeysCountPerProvider: 40)


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 8.049544444444445 > 7.989274774816177.
IsChangePoint: Marked as a change because one of 12/14/2022 5:20:21 PM, 1/3/2023 3:01:43 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -6.923924658323625 (T) = (0 -8210041.4187689535) / Math.Sqrt((30283988536.193783 / (16)) + (127535177539.65091 / (31))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (16) + (31) - 2, .025) and -0.06993343672157498 = (7673413.258235637 - 8210041.4187689535) / 7673413.258235637 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 Jit Disasm

```assembly
; Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks.Get()
       mov       rdx,[rcx+8]
       mov       rcx,offset MD_Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks+MySettings, MicroBenchmarks]](Microsoft.Extensions.Configuration.IConfiguration)
       jmp       qword ptr [7FFB92827D08]; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration)
; Total bytes of code 20
; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration)
       push      r14
       push      rdi
       push      rsi
       push      rbp
       push      rbx
       sub       rsp,30
       mov       [rsp+28],rcx
       mov       rsi,rcx
       mov       rdi,rdx
       mov       rbx,[rsi+10]
       mov       rcx,[rbx+10]
       test      rcx,rcx
       je        short M01_L00
       jmp       short M01_L01
M01_L00:
       mov       rcx,rsi
       mov       rdx,7FFB9280A590
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L01:
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       mov       rbp,[rax+8]
       test      rbp,rbp
       jne       near ptr M01_L06
       mov       rbp,[rbx+10]
       test      rbp,rbp
       je        short M01_L02
       jmp       short M01_L03
M01_L02:
       mov       rcx,rsi
       mov       rdx,7FFB9280A590
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rbp,rax
M01_L03:
       mov       rcx,offset MT_System.Action`1[[Microsoft.Extensions.Configuration.BinderOptions, Microsoft.Extensions.Configuration.Binder]]
       call      CORINFO_HELP_NEWSFAST
       mov       r14,rax
       mov       rcx,rbp
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       mov       rdx,[rax]
       test      rdx,rdx
       je        near ptr M01_L09
       lea       rcx,[r14+8]
       call      CORINFO_HELP_ASSIGN_REF
       mov       rcx,7FFB92826DB0
       mov       [r14+18],rcx
       mov       rcx,[rbx+10]
       test      rcx,rcx
       je        short M01_L04
       jmp       short M01_L05
M01_L04:
       mov       rcx,rsi
       mov       rdx,7FFB9280A590
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L05:
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       lea       rcx,[rax+8]
       mov       rdx,r14
       call      CORINFO_HELP_ASSIGN_REF
       mov       rbp,r14
M01_L06:
       mov       rcx,[rbx+18]
       test      rcx,rcx
       je        short M01_L07
       jmp       short M01_L08
M01_L07:
       mov       rcx,rsi
       mov       rdx,7FFB9280A630
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L08:
       mov       rdx,rdi
       mov       r8,rbp
       add       rsp,30
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       jmp       qword ptr [7FFB92827E88]; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration, System.Action`1<Microsoft.Extensions.Configuration.BinderOptions>)
M01_L09:
       call      qword ptr [7FFB91CED630]
       int       3
; Total bytes of code 281

Compare Jit Disasm

; Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks.Get()
       mov       rdx,[rcx+8]
       mov       rcx,offset MD_Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[Microsoft.Extensions.Configuration.ConfigurationBinderBenchmarks+MySettings, MicroBenchmarks]](Microsoft.Extensions.Configuration.IConfiguration)
       jmp       qword ptr [7FFF51A39390]; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration)
; Total bytes of code 20
; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration)
       push      r14
       push      rdi
       push      rsi
       push      rbp
       push      rbx
       sub       rsp,30
       mov       [rsp+28],rcx
       mov       rsi,rcx
       mov       rdi,rdx
       mov       rbx,[rsi+10]
       mov       rcx,[rbx+10]
       test      rcx,rcx
       je        short M01_L00
       jmp       short M01_L01
M01_L00:
       mov       rcx,rsi
       mov       rdx,7FFF51A2BA68
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L01:
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       mov       rbp,[rax+8]
       test      rbp,rbp
       jne       near ptr M01_L06
       mov       rbp,[rbx+10]
       test      rbp,rbp
       je        short M01_L02
       jmp       short M01_L03
M01_L02:
       mov       rcx,rsi
       mov       rdx,7FFF51A2BA68
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rbp,rax
M01_L03:
       mov       rcx,offset MT_System.Action`1[[Microsoft.Extensions.Configuration.BinderOptions, Microsoft.Extensions.Configuration.Binder]]
       call      CORINFO_HELP_NEWSFAST
       mov       r14,rax
       mov       rcx,rbp
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       mov       rdx,[rax]
       test      rdx,rdx
       je        near ptr M01_L09
       lea       rcx,[r14+8]
       call      CORINFO_HELP_ASSIGN_REF
       mov       rcx,offset Microsoft.Extensions.Configuration.ConfigurationBinder+<>c__5`1[[System.__Canon, System.Private.CoreLib]].<Get>b__5_0(Microsoft.Extensions.Configuration.BinderOptions)
       mov       [r14+18],rcx
       mov       rcx,[rbx+10]
       test      rcx,rcx
       je        short M01_L04
       jmp       short M01_L05
M01_L04:
       mov       rcx,rsi
       mov       rdx,7FFF51A2BA68
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L05:
       call      CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
       lea       rcx,[rax+8]
       mov       rdx,r14
       call      CORINFO_HELP_ASSIGN_REF
       mov       rbp,r14
M01_L06:
       mov       rcx,[rbx+18]
       test      rcx,rcx
       je        short M01_L07
       jmp       short M01_L08
M01_L07:
       mov       rcx,rsi
       mov       rdx,7FFF51A2BB08
       call      CORINFO_HELP_RUNTIMEHANDLE_METHOD
       mov       rcx,rax
M01_L08:
       mov       rdx,rdi
       mov       r8,rbp
       add       rsp,30
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       jmp       qword ptr [7FFF51A39510]; Microsoft.Extensions.Configuration.ConfigurationBinder.Get[[System.__Canon, System.Private.CoreLib]](Microsoft.Extensions.Configuration.IConfiguration, System.Action`1<Microsoft.Extensions.Configuration.BinderOptions>)
M01_L09:
       call      qword ptr [7FFF50F0D630]
       int       3
; Total bytes of code 281

Docs

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions