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: 5 Regressions on 9/1/2022 12:26:41 AM #8312

Closed
performanceautofiler bot opened this issue Sep 6, 2022 · 2 comments
Closed

[Perf] Windows/x64: 5 Regressions on 9/1/2022 12:26:41 AM #8312

performanceautofiler bot opened this issue Sep 6, 2022 · 2 comments

Comments

@performanceautofiler
Copy link

No description provided.

@performanceautofiler
Copy link
Author

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline 51191575ccced7759ab2b82c7348a488f56d6f52
Compare d684343d7fc6e050d5c7fa11298dc1b6a5ee7a0e
Diff Diff

Regressions in System.Text.Tests.Perf_StringBuilder

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
Append_Char_Capacity - Duration of single invocation 150.22 μs 163.55 μs 1.09 0.03 False 1196471.0884353742 1497844.8275862068 1.251885517388422 Trace Trace
Append_Char - Duration of single invocation 239.14 ns 264.19 ns 1.10 0.10 False 1845.1352907311457 2144.54362569718 1.1622690414464902 Trace Trace
Append_Char_Capacity - Duration of single invocation 172.80 ns 181.46 ns 1.05 0.04 False 1272.9268972043208 1574.7120050375968 1.2370796850126073 Trace Trace
Append_Char - Duration of single invocation 146.87 μs 165.99 μs 1.13 0.01 False 1177392.7392739274 1478525.6410256412 1.2557624925880009 Trace Trace

graph
graph
graph
graph
Test Report

Repro

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

Payloads

Baseline
Compare

Histogram

System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(length: 100000)


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 163.54619791666667 > 154.1422549023902.
IsChangePoint: Marked as a change because one of 8/17/2022 6:09:21 PM, 8/31/2022 7:50:47 PM, 9/5/2022 11:32:52 PM falls between 8/28/2022 2:29:57 AM and 9/5/2022 11:32:52 PM.
IsRegressionStdDev: Marked as regression because -44.68090402746568 (T) = (0 -165101.1280976955) / Math.Sqrt((4703900.101972525 / (39)) + (1214011.0766906764 / (24))) is less than -1.9996235849941724 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (39) + (24) - 2, .025) and -0.1260939097728984 = (146613.99610179206 - 165101.1280976955) / 146613.99610179206 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
; System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       mov       edx,[rbp+18]
       call      qword ptr [System.Text.StringBuilder..ctor(Int32)]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,18
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       sbb       [rax],ecx
       add       al,[rax]
       or        dl,dh
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
; Total bytes of code 189
; System.Text.StringBuilder..ctor(Int32)
       mov       r8d,7FFFFFFF
       jmp       qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       sbb       [rax],eax
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       push      rax
       mov       [rdi+6C],esi
       stc
       jg        short M01_L00
M01_L00:
       add       [rdi+56],dl
       sub       rsp,28
       mov       rsi,rcx
       cmp       edx,r8d
       jg        short M01_L07
       test      r8d,r8d
       jle       near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       jl        near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       je        short M01_L03
M01_L01:
       mov       [rsi+20],r8d
       cmp       edx,400
       jge       short M01_L06
       movsxd    rdx,edx
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
M01_L02:
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L03:
       cmp       r8d,10
       jl        short M01_L05
       mov       edx,10
M01_L04:
       jmp       short M01_L01
M01_L05:
       mov       edx,r8d
       jmp       short M01_L04
M01_L06:
       mov       ecx,edx
       xor       edx,edx
       call      qword ptr [System.GC.<AllocateUninitializedArray>g__AllocateNewUninitializedArray|66_0[[System.Char, System.Private.CoreLib]](Int32, Boolean)]
       jmp       short M01_L02
M01_L07:
       mov       rcx,offset MT_System.ArgumentOutOfRangeException
       call      CORINFO_HELP_NEWSFAST
       mov       rsi,rax
       mov       ecx,13438
       mov       rdx,7FF96C0B4000
       call      CORINFO_HELP_STRCNS
       mov       rdi,rax
       mov       ecx,94A7
       mov       rdx,7FF96C0B4000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8,[rsi+8]
       mov       eax,[r8+8]
       cmp       eax,ecx
       jbe       short M02_L01
       mov       eax,ecx
       mov       [r8+rax*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
M02_L00:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
M02_L01:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [7FF96C3E3258]
       jmp       short M02_L00
       pop       rbp
       ret
       add       [rcx],bl
       add       eax,32050002
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       al,dh
       xchg      esi,[rdi+6C]
       stc
       jg        short M02_L02
M02_L02:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       esi,edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       mov       rcx,rdi
       mov       edx,esi
       mov       r8d,7FFFFFFF
       call      qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       xor       ebx,ebx
       test      esi,esi
       jle       short M02_L05
M02_L03:
       mov       ecx,[rdi+18]
       mov       rdx,[rdi+8]
       cmp       [rdx+8],ecx
       jbe       short M02_L06
       mov       r8d,ecx
       mov       word ptr [rdx+r8*2+10],61
       inc       ecx
       mov       [rdi+18],ecx
M02_L04:
       inc       ebx
       cmp       ebx,esi
       jl        short M02_L03
M02_L05:
       mov       rax,rdi
       add       rsp,20
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M02_L06:
       mov       rcx,rdi
       mov       edx,61
       mov       r8d,1
       call      qword ptr [7FF96C3E3258]
       jmp       short M02_L04
; Total bytes of code 213

Compare Jit Disasm

; System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       mov       edx,[rbp+18]
       call      qword ptr [System.Text.StringBuilder..ctor(Int32)]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,18
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       sbb       [rax],ecx
       add       al,[rax]
       or        dl,dh
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
; Total bytes of code 189
; System.Text.StringBuilder..ctor(Int32)
       mov       r8d,7FFFFFFF
       jmp       qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       sbb       [rax],eax
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       mov       [rdx+7FF87A11],cl
       add       [rax],al
       push      rdi
       push      rsi
       sub       rsp,28
       mov       rsi,rcx
       cmp       edx,r8d
       jg        short M01_L06
       test      r8d,r8d
       jle       near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       jl        near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       je        short M01_L02
M01_L00:
       mov       [rsi+20],r8d
       cmp       edx,400
       jge       short M01_L05
       movsxd    rdx,edx
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
M01_L01:
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L02:
       cmp       r8d,10
       jl        short M01_L04
       mov       edx,10
M01_L03:
       jmp       short M01_L00
M01_L04:
       mov       edx,r8d
       jmp       short M01_L03
M01_L05:
       mov       ecx,edx
       xor       edx,edx
       call      qword ptr [System.GC.<AllocateUninitializedArray>g__AllocateNewUninitializedArray|66_0[[System.Char, System.Private.CoreLib]](Int32, Boolean)]
       jmp       short M01_L01
M01_L06:
       mov       rcx,offset MT_System.ArgumentOutOfRangeException
       call      CORINFO_HELP_NEWSFAST
       mov       rsi,rax
       mov       ecx,13434
       mov       rdx,7FF879A54000
       call      CORINFO_HELP_STRCNS
       mov       rdi,rax
       mov       ecx,94A3
       mov       rdx,7FF879A54000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8d,ecx
       mov       rax,[rsi+8]
       mov       r9d,[rax+8]
       cmp       r9d,r8d
       jbe       short M02_L00
       mov       r8d,r8d
       mov       [rax+r8*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
       jmp       short M02_L01
M02_L00:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [7FF879D83258]
M02_L01:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
       xor       [rax],eax
       sbb       [7FF8ABC90790],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-77],al
       adc       [rdx-8],edi
       jg        short M02_L02
M02_L02:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       esi,edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       mov       rcx,rdi
       mov       edx,esi
       mov       r8d,7FFFFFFF
       call      qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       xor       ebx,ebx
       test      esi,esi
       jle       short M02_L06
M02_L03:
       mov       ecx,[rdi+18]
       mov       edx,ecx
       mov       r8,[rdi+8]
       mov       eax,[r8+8]
       cmp       eax,edx
       jbe       short M02_L04
       mov       edx,edx
       mov       word ptr [r8+rdx*2+10],61
       inc       ecx
       mov       [rdi+18],ecx
       jmp       short M02_L05
M02_L04:
       mov       rcx,rdi
       mov       edx,61
       mov       r8d,1
       call      qword ptr [7FF879D83258]
M02_L05:
       inc       ebx
       cmp       ebx,esi
       jl        short M02_L03
M02_L06:
       mov       rax,rdi
       add       rsp,20
; Total bytes of code 213

System.Text.Tests.Perf_StringBuilder.Append_Char(length: 100)


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 264.1886516143732 > 251.674363805217.
IsChangePoint: Marked as a change because one of 8/18/2022 10:33:11 AM, 8/31/2022 7:50:47 PM, 9/5/2022 11:32:52 PM falls between 8/28/2022 2:29:57 AM and 9/5/2022 11:32:52 PM.
IsRegressionStdDev: Marked as regression because -23.017930502678382 (T) = (0 -267.82232635850715) / Math.Sqrt((29.147408007383685 / (39)) + (16.991182677741374 / (24))) is less than -1.9996235849941724 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (39) + (24) - 2, .025) and -0.11567477225628661 = (240.05412062592063 - 267.82232635850715) / 240.05412062592063 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
; System.Text.Tests.Perf_StringBuilder.Append_Char(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       call      qword ptr [System.Text.StringBuilder..ctor()]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,17
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       add       [rax+rax+19],ah
       or        [rdx],al
       add       [rax],cl
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       al,cl
       (bad)
; Total bytes of code 186
; System.Text.StringBuilder..ctor()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       dword ptr [rsi+20],7FFFFFFF
       mov       rcx,offset MT_System.Char[]
       mov       edx,10
       call      CORINFO_HELP_NEWARR_1_VC
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,20
       pop       rsi
       ret
       add       [rax],al
       sbb       [7FF8685A0AB0],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-7C95D74],dl
       jg        short M01_L00
M01_L00:
       add       ch,al
       clc
       ja        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       eax,ecx
       sub       rax,rdx
       cmp       rax,r8
       jae       short M01_L02
M01_L01:
       cmp       rcx,rdx
       je        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       jmp       near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02:
       mov       rax,rdx
       sub       rax,rcx
       cmp       rax,r8
       jb        short M01_L01
       lea       rax,[rdx+r8]
       lea       r9,[rcx+r8]
       cmp       r8,10
       jbe       short M01_L04
       cmp       r8,40
       ja        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       vmovupd   xmm0,[rdx]
       vmovupd   [rcx],xmm0
       cmp       r8,20
       jbe       short M01_L03
       vmovupd   xmm0,[rdx+10]
       vmovupd   [rcx+10],xmm0
       cmp       r8,30
       jbe       short M01_L03
       vmovupd   xmm0,[rdx+20]
       vmovupd   [rcx+20],xmm0
M01_L03:
       vmovupd   xmm0,[rax-10]
       vmovupd   [r9-10],xmm0
       jmp       short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04:
       test      r8b,18
       je        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       r8,[rdx]
       mov       [rcx],r8
       mov       rdx,[rax-8]
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8,[rsi+8]
       mov       eax,[r8+8]
       cmp       eax,ecx
       jbe       short M02_L01
       mov       eax,ecx
       mov       [r8+rax*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
M02_L00:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
M02_L01:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [System.Text.StringBuilder.Append(Char, Int32)]
       jmp       short M02_L00
       add       [rax],al
       add       [rcx],bl
       add       eax,32050002
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       al,bl
       xchg      esp,[rdx+7FF836]
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+1C]
       lea       eax,[rdx+rcx]
       mov       r8d,[rsi+18]
       add       eax,r8d
       cmp       eax,[rsi+20]
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       eax,edx
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       add       ecx,r8d
       mov       eax,ecx
       cmp       eax,1F40
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,eax
       cmp       edx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,edx
       add       ecx,r8d
       cmp       ecx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       r8d,400
       jge       near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       movsxd    rdx,r8d
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
       mov       rdi,rax
; Total bytes of code 213

Compare Jit Disasm

; System.Text.Tests.Perf_StringBuilder.Append_Char(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       call      qword ptr [System.Text.StringBuilder..ctor()]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,17
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       add       [rcx],ah
       add       [rcx],bl
       or        [rdx],al
       add       [rax],cl
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],dh
       (bad)
; Total bytes of code 186
; System.Text.StringBuilder..ctor()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       dword ptr [rsi+20],7FFFFFFF
       mov       rcx,offset MT_System.Char[]
       mov       edx,10
       call      CORINFO_HELP_NEWARR_1_VC
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,20
       pop       rsi
       ret
       je        short M01_L00
M01_L00:
       sbb       [7FF858A00AD0],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       al,ah
       (bad)
       clc
       jg        short M01_L01
M01_L01:
       add       ch,al
       clc
       ja        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       eax,ecx
       sub       rax,rdx
       cmp       rax,r8
       jae       short M01_L03
M01_L02:
       cmp       rcx,rdx
       je        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       jmp       near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03:
       mov       rax,rdx
       sub       rax,rcx
       cmp       rax,r8
       jb        short M01_L02
       lea       rax,[rdx+r8]
       lea       r9,[rcx+r8]
       cmp       r8,10
       jbe       short M01_L05
       cmp       r8,40
       ja        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       vmovupd   xmm0,[rdx]
       vmovupd   [rcx],xmm0
       cmp       r8,20
       jbe       short M01_L04
       vmovupd   xmm0,[rdx+10]
       vmovupd   [rcx+10],xmm0
       cmp       r8,30
       jbe       short M01_L04
       vmovupd   xmm0,[rdx+20]
       vmovupd   [rcx+20],xmm0
M01_L04:
       vmovupd   xmm0,[rax-10]
       vmovupd   [r9-10],xmm0
       jmp       short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L05:
       test      r8b,18
       je        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       r8,[rdx]
       mov       [rcx],r8
       mov       rdx,[rax-8]
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8d,ecx
       mov       rax,[rsi+8]
       mov       r9d,[rax+8]
       cmp       r9d,r8d
       jbe       short M02_L00
       mov       r8d,r8d
       mov       [rax+r8*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
       jmp       short M02_L01
M02_L00:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [System.Text.StringBuilder.Append(Char, Int32)]
M02_L01:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
       xor       [rax],al
       sbb       [7FF858A006D0],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],bh
       mov       eax,ebp
       clc
       jg        short M02_L02
M02_L02:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+1C]
       lea       eax,[rdx+rcx]
       mov       r8d,[rsi+18]
       add       eax,r8d
       cmp       eax,[rsi+20]
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       eax,edx
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       add       ecx,r8d
       mov       eax,ecx
       cmp       eax,1F40
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,eax
       cmp       edx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,edx
       add       ecx,r8d
       cmp       ecx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       r8d,400
       jge       near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       movsxd    rdx,r8d
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
       mov       rdi,rax
; Total bytes of code 213

System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(length: 100)


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 181.45902177978635 > 177.37016012794243.
IsChangePoint: Marked as a change because one of 7/23/2022 3:48:41 PM, 7/26/2022 5:16:37 PM, 8/1/2022 6:03:22 PM, 8/5/2022 10:45:33 AM, 8/16/2022 10:54:40 PM, 8/31/2022 7:50:47 PM, 9/5/2022 11:32:52 PM falls between 8/28/2022 2:29:57 AM and 9/5/2022 11:32:52 PM.
IsRegressionStdDev: Marked as regression because -50.015198380260045 (T) = (0 -182.1209865588562) / Math.Sqrt((2.2202948621871523 / (39)) + (0.23241101401359157 / (24))) is less than -1.9996235849941724 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (39) + (24) - 2, .025) and -0.07628770270098167 = (169.21217821388947 - 182.1209865588562) / 169.21217821388947 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
; System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       mov       edx,[rbp+18]
       call      qword ptr [System.Text.StringBuilder..ctor(Int32)]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,18
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       sbb       [rax],ecx
       add       al,[rax]
       or        dl,dh
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       al,cl
       jno       short 00007FF96C32EBAB
       insb
       stc
; Total bytes of code 189
; System.Text.StringBuilder..ctor(Int32)
       mov       r8d,7FFFFFFF
       jmp       qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       sbb       [rax],eax
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       ror       byte ptr [rax+7FF96C80],0
       add       [rdi+56],dl
       sub       rsp,28
       mov       rsi,rcx
       cmp       edx,r8d
       jg        short M01_L06
       test      r8d,r8d
       jle       near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       jl        near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       je        short M01_L02
M01_L00:
       mov       [rsi+20],r8d
       cmp       edx,400
       jge       short M01_L05
       movsxd    rdx,edx
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
M01_L01:
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L02:
       cmp       r8d,10
       jl        short M01_L04
       mov       edx,10
M01_L03:
       jmp       short M01_L00
M01_L04:
       mov       edx,r8d
       jmp       short M01_L03
M01_L05:
       mov       ecx,edx
       xor       edx,edx
       call      qword ptr [7FF96C825018]
       jmp       short M01_L01
M01_L06:
       mov       rcx,offset MT_System.ArgumentOutOfRangeException
       call      CORINFO_HELP_NEWSFAST
       mov       rsi,rax
       mov       ecx,13438
       mov       rdx,7FF96C144000
       call      CORINFO_HELP_STRCNS
       mov       rdi,rax
       mov       ecx,94A7
       mov       rdx,7FF96C144000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8,[rsi+8]
       mov       eax,[r8+8]
       cmp       eax,ecx
       jbe       short M02_L01
       mov       eax,ecx
       mov       [r8+rax*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
M02_L00:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
M02_L01:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [7FF96C473258]
       jmp       short M02_L00
       add       [rax],al
       add       [rcx],bl
       add       eax,32050002
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-79],ah
       sub       byte ptr [rcx+rdi*8+7F],0
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       esi,edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       mov       rcx,rdi
       mov       edx,esi
       mov       r8d,7FFFFFFF
       call      qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       xor       ebx,ebx
       test      esi,esi
       jle       short M02_L04
M02_L02:
       mov       ecx,[rdi+18]
       mov       rdx,[rdi+8]
       cmp       [rdx+8],ecx
       jbe       short M02_L05
       mov       r8d,ecx
       mov       word ptr [rdx+r8*2+10],61
       inc       ecx
       mov       [rdi+18],ecx
M02_L03:
       inc       ebx
       cmp       ebx,esi
       jl        short M02_L02
M02_L04:
       mov       rax,rdi
       add       rsp,20
       pop       rbx
       pop       rsi
       pop       rdi
       ret
M02_L05:
       mov       rcx,rdi
       mov       edx,61
       mov       r8d,1
       call      qword ptr [7FF96C473258]
       jmp       short M02_L03
; Total bytes of code 213

Compare Jit Disasm

; System.Text.Tests.Perf_StringBuilder.Append_Char_Capacity(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       mov       edx,[rbp+18]
       call      qword ptr [System.Text.StringBuilder..ctor(Int32)]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,18
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       sbb       [rax],ecx
       add       al,[rax]
       or        dl,dh
       add       [rax],edx
       add       [rax],al
       add       [rax],al
M00_L03:
       add       [rax],al
       add       [rax],dh
       jae       short BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
       jp        short M00_L03
; Total bytes of code 189
; System.Text.StringBuilder..ctor(Int32)
       mov       r8d,7FFFFFFF
       jmp       qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       sbb       [rax],eax
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       or        [rdx+7FF87A1B],cl
       add       [rax],al
       push      rdi
       push      rsi
       sub       rsp,28
       mov       rsi,rcx
       cmp       edx,r8d
       jg        short M01_L06
       test      r8d,r8d
       jle       near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       jl        near ptr System.Text.StringBuilder..ctor(Int32, Int32)
       test      edx,edx
       je        short M01_L02
M01_L00:
       mov       [rsi+20],r8d
       cmp       edx,400
       jge       short M01_L05
       movsxd    rdx,edx
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
M01_L01:
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L02:
       cmp       r8d,10
       jl        short M01_L04
       mov       edx,10
M01_L03:
       jmp       short M01_L00
M01_L04:
       mov       edx,r8d
       jmp       short M01_L03
M01_L05:
       mov       ecx,edx
       xor       edx,edx
       call      qword ptr [7FF87A1D5018]
       jmp       short M01_L01
M01_L06:
       mov       rcx,offset MT_System.ArgumentOutOfRangeException
       call      CORINFO_HELP_NEWSFAST
       mov       rsi,rax
       mov       ecx,13434
       mov       rdx,7FF879AF4000
       call      CORINFO_HELP_STRCNS
       mov       rdi,rax
       mov       ecx,94A3
       mov       rdx,7FF879AF4000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       (bad)
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8d,ecx
       mov       rax,[rsi+8]
       mov       r9d,[rax+8]
       cmp       r9d,r8d
       jbe       short M02_L00
       mov       r8d,r8d
       mov       [rax+r8*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
       jmp       short M02_L01
M02_L00:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [7FF879E23258]
M02_L01:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
       xor       [rax],al
       sbb       [7FF8ABD306D0],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
M02_L02:
       add       [rax],al
       add       al,al
       mov       [rbx],bl
       jp        short M02_L02
       jg        short M02_L03
M02_L03:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       esi,edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       rdi,rax
       mov       rcx,rdi
       mov       edx,esi
       mov       r8d,7FFFFFFF
       call      qword ptr [System.Text.StringBuilder..ctor(Int32, Int32)]
       xor       ebx,ebx
       test      esi,esi
       jle       short M02_L07
M02_L04:
       mov       ecx,[rdi+18]
       mov       edx,ecx
       mov       r8,[rdi+8]
       mov       eax,[r8+8]
       cmp       eax,edx
       jbe       short M02_L05
       mov       edx,edx
       mov       word ptr [r8+rdx*2+10],61
       inc       ecx
       mov       [rdi+18],ecx
       jmp       short M02_L06
M02_L05:
       mov       rcx,rdi
       mov       edx,61
       mov       r8d,1
       call      qword ptr [7FF879E23258]
M02_L06:
       inc       ebx
       cmp       ebx,esi
       jl        short M02_L04
M02_L07:
       mov       rax,rdi
       add       rsp,20
; Total bytes of code 213
; BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
       push      rbp
       sub       rsp,20
       lea       rbp,[rsp+20]
       mov       [rbp+10],rcx
       mov       [rbp+18],rdx
       mov       rcx,[rbp+10]
       mov       r8,[rbp+18]
       mov       edx,6
       call      qword ptr [System.Diagnostics.Tracing.EventSource.WriteEvent(Int32, Int64)]
       nop
       add       rsp,20
       pop       rbp
       ret
       sbb       [7FF8ABD2EC84],eax
       add       [rax],edx
       add       [rax],al
       add       [rax-785E48D],cl
       jg        short M03_L00
M03_L00:
       add       [rbp+48],dl
       mov       ebp,esp
       mov       [rbp+10],rcx
       mov       rax,[rbp+10]
       mov       rax,[rax+58]
       pop       rbp
       ret
       add       [rax],al
       sbb       [rcx],eax
       add       [rax],eax
       add       [rax-1],edx
       inc       dword ptr [rax]
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
M03_L01:
       add       [rax],al
       add       al,bl
       jae       short BenchmarkDotNet.Autogenerated.Runnable_0+<>c.<.ctor>b__3_3()
       jp        short M03_L01
       jg        short M03_L02
M03_L02:
       add       [rbp+48],dl
       mov       ebp,esp
       mov       [rbp+10],rcx
       pop       rbp
       ret
       add       [rax],al
       sbb       [rcx],eax
       add       [rax],eax
       add       [rax],edx
       add       [rax],al
M03_L03:
       add       [rax],al
       add       [rax],ch
       je        short M03_L05
       jp        short M03_L03
       jg        short M03_L04
M03_L04:
       add       [rbp+48],dl
       mov       ebp,esp
       mov       [rbp+10],rcx
       mov       rax,[rbp+10]
       mov       rax,[rax+28]
       pop       rbp
       ret
       add       [rax],al
       sbb       [rcx],eax
M03_L05:
       add       [rax],eax
       add       [rax-1],edx
       inc       dword ptr [rax]
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax+74],bh
       sbb       edi,[rdx-8]
       jg        short M03_L06
M03_L06:
       add       [rbp+48],dl
       mov       ebp,esp
       mov       [rbp+10],rcx
       mov       rax,[rbp+10]
       inc       dword ptr [rax+78]
       mov       rax,[rbp+10]
       (bad)
; Total bytes of code 213

System.Text.Tests.Perf_StringBuilder.Append_Char(length: 100000)


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 165.99198822463765 > 154.37090810152534.
IsChangePoint: Marked as a change because one of 7/12/2022 12:16:14 PM, 8/17/2022 6:09:21 PM, 8/31/2022 7:50:47 PM, 9/5/2022 11:32:52 PM falls between 8/28/2022 2:29:57 AM and 9/5/2022 11:32:52 PM.
IsRegressionStdDev: Marked as regression because -58.68302004424932 (T) = (0 -166195.79241351123) / Math.Sqrt((3267569.057491687 / (39)) + (177621.28632208754 / (24))) is less than -1.9996235849941724 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (39) + (24) - 2, .025) and -0.11934905252610972 = (148475.39472914735 - 166195.79241351123) / 148475.39472914735 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
; System.Text.Tests.Perf_StringBuilder.Append_Char(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       call      qword ptr [System.Text.StringBuilder..ctor()]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,17
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       add       [rax+rax+19],ah
       or        [rdx],al
       add       [rax],cl
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       (bad)
; Total bytes of code 186
; System.Text.StringBuilder..ctor()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       dword ptr [rsi+20],7FFFFFFF
       mov       rcx,offset MT_System.Char[]
       mov       edx,10
       call      CORINFO_HELP_NEWARR_1_VC
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,20
       pop       rsi
       ret
       je        short M01_L00
M01_L00:
       sbb       [7FF868520B50],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],ah
       mov       ebx,[rdx+7FF836]
       add       [rdi+56],dl
       sub       rsp,28
       mov       esi,ecx
       mov       edi,10
       test      dl,dl
       jne       short M01_L04
M01_L01:
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
       test      rax,rax
       je        short M01_L03
       mov       rcx,[rax+18]
M01_L02:
       mov       edx,esi
       mov       r8d,edi
       call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L03:
       xor       ecx,ecx
       jmp       short M01_L02
M01_L04:
       mov       edi,50
       jmp       short M01_L01
       jb        short M01_L05
M01_L05:
       sbb       [rsi],eax
       add       eax,[rax]
       (bad)
       add       ah,[rax+1]
       jo        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       add       [rax],al
       add       [rax],al
       add       [rax-7C96573],bh
       jg        short M01_L06
M01_L06:
       add       ch,al
       clc
       ja        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       eax,ecx
       sub       rax,rdx
       cmp       rax,r8
       jae       short M01_L07
       cmp       rcx,rdx
       je        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       jmp       near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07:
       mov       rax,rdx
       sub       rax,rcx
       cmp       rax,r8
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8,[rsi+8]
       mov       eax,[r8+8]
       cmp       eax,ecx
       jbe       short M02_L01
       mov       eax,ecx
       mov       [r8+rax*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
M02_L00:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
M02_L01:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [System.Text.StringBuilder.Append(Char, Int32)]
       jmp       short M02_L00
       add       [rdx],dh
       sbb       [7FF86852074C],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-78],ch
       (bad)
       clc
       jg        short M02_L02
M02_L02:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+1C]
       lea       eax,[rdx+rcx]
       mov       r8d,[rsi+18]
       add       eax,r8d
       cmp       eax,[rsi+20]
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       eax,edx
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       add       ecx,r8d
       mov       eax,ecx
       cmp       eax,1F40
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,eax
       cmp       edx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,edx
       add       ecx,r8d
       cmp       ecx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       r8d,400
       jge       near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       movsxd    rdx,r8d
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
       mov       rdi,rax
; Total bytes of code 213

Compare Jit Disasm

; System.Text.Tests.Perf_StringBuilder.Append_Char(Int32)
       push      rbp
       sub       rsp,80
       lea       rbp,[rsp+80]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-50],xmm4
       xor       eax,eax
       mov       [rbp-40],rax
       mov       [rbp+10],rcx
       mov       [rbp+18],edx
       mov       rcx,offset MT_System.Text.StringBuilder
       call      CORINFO_HELP_NEWSFAST
       mov       [rbp-50],rax
       mov       rcx,[rbp-50]
       call      qword ptr [System.Text.StringBuilder..ctor()]
       mov       rcx,[rbp-50]
       mov       [rbp-40],rcx
       xor       ecx,ecx
       mov       [rbp-44],ecx
       mov       dword ptr [rbp-58],3E8
       jmp       short M00_L01
M00_L00:
       mov       rcx,[rbp-40]
       mov       edx,61
       cmp       [rcx],ecx
       call      qword ptr [System.Text.StringBuilder.Append(Char)]
       mov       eax,[rbp-44]
       inc       eax
       mov       [rbp-44],eax
M00_L01:
       mov       ecx,[rbp-58]
       dec       ecx
       mov       [rbp-58],ecx
       cmp       dword ptr [rbp-58],0
       jg        short M00_L02
       lea       rcx,[rbp-58]
       mov       edx,17
       call      CORINFO_HELP_PATCHPOINT
M00_L02:
       mov       ecx,[rbp-44]
       cmp       ecx,[rbp+18]
       jl        short M00_L00
       mov       rax,[rbp-40]
       add       rsp,80
       pop       rbp
       ret
       int       3
       int       3
       add       [rax+rax+19],ah
       or        [rdx],al
       add       [rax],cl
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
       (bad)
; Total bytes of code 186
; System.Text.StringBuilder..ctor()
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       dword ptr [rsi+20],7FFFFFFF
       mov       rcx,offset MT_System.Char[]
       mov       edx,10
       call      CORINFO_HELP_NEWARR_1_VC
       lea       rcx,[rsi+8]
       mov       rdx,rax
       call      CORINFO_HELP_ASSIGN_REF
       nop
       add       rsp,20
       pop       rsi
       ret
       add       [rax],al
       sbb       [7FF858960B90],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-74],ah
       fisub     word ptr [rsi]
       clc
       jg        short M01_L00
M01_L00:
       add       [rdi+56],dl
       sub       rsp,28
       mov       esi,ecx
       mov       edi,10
       test      dl,dl
       jne       short M01_L04
M01_L01:
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
       test      rax,rax
       je        short M01_L03
       mov       rcx,[rax+18]
M01_L02:
       mov       edx,esi
       mov       r8d,edi
       call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
       nop
       add       rsp,28
       pop       rsi
       pop       rdi
       ret
M01_L03:
       xor       ecx,ecx
       jmp       short M01_L02
M01_L04:
       mov       edi,50
       jmp       short M01_L01
       jb        short M01_L05
M01_L05:
       sbb       [rsi],eax
       add       eax,[rax]
       (bad)
       add       ah,[rax+1]
       jo        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       add       [rax],al
       add       [rax],al
       add       al,bh
       mov       ds,esi
       clc
       jg        short M01_L06
M01_L06:
       add       ch,al
       clc
       ja        short System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       mov       eax,ecx
       sub       rax,rdx
       cmp       rax,r8
       jae       short M01_L07
       cmp       rcx,rdx
       je        near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
       jmp       near ptr System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07:
       mov       rax,rdx
       sub       rax,rcx
       cmp       rax,r8
; Total bytes of code 213
; System.Text.StringBuilder.Append(Char)
       push      rsi
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+18]
       mov       r8d,ecx
       mov       rax,[rsi+8]
       mov       r9d,[rax+8]
       cmp       r9d,r8d
       jbe       short M02_L00
       mov       r8d,r8d
       mov       [rax+r8*2+10],dx
       inc       ecx
       mov       [rsi+18],ecx
       jmp       short M02_L01
M02_L00:
       movzx     edx,dx
       mov       rcx,rsi
       mov       r8d,1
       call      qword ptr [System.Text.StringBuilder.Append(Char, Int32)]
M02_L01:
       mov       rax,rsi
       add       rsp,20
       pop       rsi
       ret
       xor       [rax],eax
       sbb       [7FF858960790],eax
       add       [rax],esp
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax-7D92177],bh
       jg        short M02_L02
M02_L02:
       add       [rdi+56],dl
       push      rbx
       sub       rsp,20
       mov       rsi,rcx
       mov       ecx,[rsi+1C]
       lea       eax,[rdx+rcx]
       mov       r8d,[rsi+18]
       add       eax,r8d
       cmp       eax,[rsi+20]
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       eax,edx
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       add       ecx,r8d
       mov       eax,ecx
       cmp       eax,1F40
       jg        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,eax
       cmp       edx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       mov       r8d,edx
       add       ecx,r8d
       cmp       ecx,r8d
       jl        near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       cmp       r8d,400
       jge       near ptr System.Text.StringBuilder.ExpandByABlock(Int32)
       movsxd    rdx,r8d
       mov       rcx,offset MT_System.Char[]
       call      CORINFO_HELP_NEWARR_1_VC
       mov       rdi,rax
; Total bytes of code 213

Docs

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

@performanceautofiler
Copy link
Author

performanceautofiler bot commented Sep 6, 2022

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline 51191575ccced7759ab2b82c7348a488f56d6f52
Compare d684343d7fc6e050d5c7fa11298dc1b6a5ee7a0e
Diff Diff

Regressions in System.Net.Primitives.Tests.IPAddressPerformanceTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TryFormat - Duration of single invocation 146.37 ns 158.45 ns 1.08 0.03 False 1583.4889269228775 1658.0986518259215 1.0471173013176858

graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Net.Primitives.Tests.IPAddressPerformanceTests*'

Payloads

Baseline
Compare

Histogram

System.Net.Primitives.Tests.IPAddressPerformanceTests.TryFormat(address: 1020:3040:5060:7080:9010:1112:1314:1516)


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 158.45399632545391 > 153.76769748933424.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/12/2022 12:16:14 PM, 8/17/2022 6:09:21 PM, 8/31/2022 7:50:47 PM, 9/5/2022 11:32:52 PM falls between 8/28/2022 2:29:57 AM and 9/5/2022 11:32:52 PM.
IsRegressionStdDev: Marked as regression because -24.1315897146819 (T) = (0 -158.2260171279496) / Math.Sqrt((10.967784412274757 / (38)) + (1.2166066697300804 / (24))) is less than -2.0002978220134566 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (38) + (24) - 2, .025) and -0.09750278506964474 = (144.1691258377162 - 158.2260171279496) / 144.1691258377162 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
; System.Net.Primitives.Tests.IPAddressPerformanceTests.TryFormat(System.Net.IPAddress)
       push      rbp
       sub       rsp,50
       vzeroupper
       lea       rbp,[rsp+50]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-30],xmm4
       vmovdqa   xmmword ptr [rbp-20],xmm4
       vmovdqa   xmmword ptr [rbp-10],xmm4
       mov       [rbp+10],rcx
       mov       [rbp+18],rdx
       mov       rdx,[rbp+10]
       mov       rdx,[rdx+10]
       lea       rcx,[rbp-18]
       call      qword ptr [System.Span`1[[System.Char, System.Private.CoreLib]]..ctor(Char[])]
       mov       rcx,[rbp+18]
       mov       [rbp-30],rcx
       vmovdqu   xmm0,xmmword ptr [rbp-18]
       vmovdqu   xmmword ptr [rbp-28],xmm0
       mov       rcx,[rbp-30]
       lea       rdx,[rbp-28]
       lea       r8,[rbp-8]
       cmp       [rcx],ecx
       call      qword ptr [System.Net.IPAddress.TryFormat(System.Span`1<Char>, Int32 ByRef)]
       nop
       add       rsp,50
       pop       rbp
       ret
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       add       [rax],al
       add       [rcx],bl
       add       eax,92050002
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       (bad)
; Total bytes of code 128
; System.Span`1[[System.Char, System.Private.CoreLib]]..ctor(Char[])
       test      rdx,rdx
       je        short M01_L00
       lea       rax,[rdx+10]
       mov       [rcx],rax
       mov       eax,[rdx+8]
       mov       [rcx+8],eax
       ret
M01_L00:
       xor       eax,eax
       mov       [rcx],rax
       mov       [rcx+8],rax
       ret
       int       3
       int       3
       int       3
       sub       rsp,28
       test      rdx,rdx
       je        short 00007FFF030CCC81
       mov       r8d,r8d
       mov       eax,r9d
       add       rax,r8
       mov       r10d,[rdx+8]
       cmp       rax,r10
       ja        short 00007FFF030CCC94
       (bad)
; Total bytes of code 60
; System.Net.IPAddress.TryFormat(System.Span`1<Char>, Int32 ByRef)
       push      rbp
       sub       rsp,60
       vzeroupper
       lea       rbp,[rsp+60]
       xor       eax,eax
       mov       [rbp-38],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-30],xmm4
       vmovdqa   xmmword ptr [rbp-20],xmm4
       vmovdqa   xmmword ptr [rbp-10],xmm4
       mov       [rbp+10],rcx
       mov       [rbp+18],rdx
       mov       [rbp+20],r8
       mov       rcx,[rbp+10]
       call      qword ptr [System.Net.IPAddress.get_IsIPv4()]
       test      eax,eax
       jne       short M02_L00
       mov       rcx,[rbp+10]
       mov       rcx,[rcx+8]
       mov       [rbp-8],rcx
       mov       rcx,[rbp-8]
       mov       [rbp-28],rcx
       mov       rcx,[rbp+10]
       call      qword ptr [System.Net.IPAddress.get_PrivateScopeId()]
       mov       [rbp-1C],eax
       mov       rdx,[rbp+18]
       vmovdqu   xmm0,xmmword ptr [rdx]
       vmovdqu   xmmword ptr [rbp-18],xmm0
       mov       edx,[rbp-1C]
       mov       rcx,[rbp-28]
       lea       r8,[rbp-18]
       mov       r9,[rbp+20]
       call      qword ptr [System.Net.IPAddressParser.IPv6AddressToString(UInt16[], UInt32, System.Span`1<Char>, Int32 ByRef)]
       nop
       add       rsp,60
       pop       rbp
       ret
M02_L00:
       mov       rcx,[rbp+10]
       call      qword ptr [7FFEA41A5030]
       mov       [rbp-3C],eax
       mov       rcx,[rbp+18]
       vmovdqu   xmm0,xmmword ptr [rcx]
       vmovdqu   xmmword ptr [rbp-38],xmm0
       mov       ecx,[rbp-3C]
       lea       rdx,[rbp-38]
       mov       r8,[rbp+20]
       call      qword ptr [7FFEA43012E8]
       nop
       add       rsp,60
       pop       rbp
       ret
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       sbb       [7FFE55E5FB9C],eax
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
; Total bytes of code 213

Compare Jit Disasm

; System.Net.Primitives.Tests.IPAddressPerformanceTests.TryFormat(System.Net.IPAddress)
       push      rbp
       sub       rsp,50
       vzeroupper
       lea       rbp,[rsp+50]
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-30],xmm4
       vmovdqa   xmmword ptr [rbp-20],xmm4
       vmovdqa   xmmword ptr [rbp-10],xmm4
       mov       [rbp+10],rcx
       mov       [rbp+18],rdx
       mov       rdx,[rbp+10]
       mov       rdx,[rdx+10]
       lea       rcx,[rbp-18]
       call      qword ptr [System.Span`1[[System.Char, System.Private.CoreLib]]..ctor(Char[])]
       mov       rcx,[rbp+18]
       mov       [rbp-30],rcx
       vmovdqu   xmm0,xmmword ptr [rbp-18]
       vmovdqu   xmmword ptr [rbp-28],xmm0
       mov       rcx,[rbp-30]
       lea       rdx,[rbp-28]
       lea       r8,[rbp-8]
       cmp       [rcx],ecx
       call      qword ptr [System.Net.IPAddress.TryFormat(System.Span`1<Char>, Int32 ByRef)]
       nop
       add       rsp,50
       pop       rbp
       ret
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       xchg      edi,eax
       stc
       and       [rcx],ebx
       add       eax,92050002
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       (bad)
; Total bytes of code 128
; System.Span`1[[System.Char, System.Private.CoreLib]]..ctor(Char[])
       test      rdx,rdx
       je        short M01_L00
       lea       rax,[rdx+10]
       mov       [rcx],rax
       mov       eax,[rdx+8]
       mov       [rcx+8],eax
       ret
M01_L00:
       xor       eax,eax
       mov       [rcx],rax
       mov       [rcx+8],rax
       ret
       int       3
       int       3
       int       3
       sub       rsp,28
       test      rdx,rdx
       je        short 00007FFF9296B9A1
       mov       r8d,r8d
       mov       eax,r9d
       add       rax,r8
       mov       r10d,[rdx+8]
       cmp       rax,r10
       ja        short 00007FFF9296B9B4
       (bad)
; Total bytes of code 60
; System.Net.IPAddress.TryFormat(System.Span`1<Char>, Int32 ByRef)
       push      rbp
       sub       rsp,60
       vzeroupper
       lea       rbp,[rsp+60]
       xor       eax,eax
       mov       [rbp-38],rax
       vxorps    xmm4,xmm4,xmm4
       vmovdqa   xmmword ptr [rbp-30],xmm4
       vmovdqa   xmmword ptr [rbp-20],xmm4
       vmovdqa   xmmword ptr [rbp-10],xmm4
       mov       [rbp+10],rcx
       mov       [rbp+18],rdx
       mov       [rbp+20],r8
       mov       rcx,[rbp+10]
       call      qword ptr [System.Net.IPAddress.get_IsIPv4()]
       test      eax,eax
       jne       short M02_L00
       mov       rcx,[rbp+10]
       mov       rcx,[rcx+8]
       mov       [rbp-8],rcx
       mov       rcx,[rbp-8]
       mov       [rbp-28],rcx
       mov       rcx,[rbp+10]
       call      qword ptr [System.Net.IPAddress.get_PrivateScopeId()]
       mov       [rbp-1C],eax
       mov       rdx,[rbp+18]
       vmovdqu   xmm0,xmmword ptr [rdx]
       vmovdqu   xmmword ptr [rbp-18],xmm0
       mov       edx,[rbp-1C]
       mov       rcx,[rbp-28]
       lea       r8,[rbp-18]
       mov       r9,[rbp+20]
       call      qword ptr [System.Net.IPAddressParser.IPv6AddressToString(UInt16[], UInt32, System.Span`1<Char>, Int32 ByRef)]
       nop
       add       rsp,60
       pop       rbp
       ret
M02_L00:
       mov       rcx,[rbp+10]
       call      qword ptr [7FFF33A35030]
       mov       [rbp-3C],eax
       mov       rcx,[rbp+18]
       vmovdqu   xmm0,xmmword ptr [rcx]
       vmovdqu   xmmword ptr [rbp-38],xmm0
       mov       ecx,[rbp-3C]
       lea       rdx,[rbp-38]
       mov       r8,[rbp+20]
       call      qword ptr [7FFF33B912E8]
       nop
       add       rsp,60
       pop       rbp
       ret
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       int       3
       sbb       [7FFEE56EFBBC],eax
       add       [rax],edx
       add       [rax],al
       add       [rax],al
       add       [rax],al
       add       [rax],al
; Total bytes of code 213

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