Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
performanceautofiler bot opened this issue Jan 10, 2023 · 1 comment
Closed

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

performanceautofiler bot opened this issue Jan 10, 2023 · 1 comment

Comments

@performanceautofiler
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants