Details
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_DateTimeOffset.GetNow
Description of detection logic
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 150.5528594538015 < 151.68704426445217.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/31/2022 12:39:41 PM, 8/5/2022 10:47:59 PM falls between 7/28/2022 9:13:34 AM and 8/5/2022 10:47:59 PM.
IsImprovementStdDev: Marked as improvement because 54.25615510523928 (T) = (0 -150.37303696973444) / Math.Sqrt((3.620349526786433 / (299)) + (0.32643944815647014 / (34))) is greater than 1.9671567996108528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (34) - 2, .975) and 0.05047859286608014 = (158.36718987055542 - 150.37303696973444) / 158.36718987055542 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Tests.Perf_DateTimeOffset.GetNow()
push rsi
sub rsp,20
mov rsi,rdx
call qword ptr [1918]
mov rdx,rax
mov rcx,rsi
mov r8d,1
add rsp,20
pop rsi
jmp qword ptr [0B918]
; Total bytes of code 37
; System.DateTime.get_UtcNow()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
lea rcx,[rbp+0FFE8]
mov rax,7FF978F25040
call rax
mov rsi,[rbp+0FFE8]
mov rax,172B9C00228
mov rdi,[rax]
sub rsi,[rdi+8]
cmp dword ptr [6CDC],0
jne short 00000000000001E2
mov eax,0B2D05E00
cmp rsi,rax
jae short 00000000000001D3
mov rax,rsi
add rax,[rdi+10]
add rsp,30
pop rsi
pop rdi
pop rbp
ret
call qword ptr [19A8]
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
call 000000000000EAE0
jmp short 00000000000001BA
; Total bytes of code 105
; System.DateTimeOffset.ToLocalTime(System.DateTime, Boolean)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
vzeroupper
mov rsi,rcx
mov rdi,rdx
mov ebx,r8d
mov rcx,172B9C00408
mov rbp,[rcx]
mov rcx,[rbp+8]
test rcx,rcx
je near ptr 00000000000002D2
mov rdx,rdi
mov r9,rbp
mov r8d,2
cmp [rcx],ecx
call qword ptr [0D948]
mov rbp,rax
mov r14,0FFFFFFFFFFFF
and rdi,r14
add rdi,rbp
js near ptr 00000000000002FF
mov rcx,2875F4373FFF
cmp rdi,rcx
jg near ptr 00000000000002FF
vxorps xmm0,xmm0,xmm0
vmovupd [rsp+20],xmm0
mov rcx,rbp
call qword ptr [0BAC8]
mov ebx,eax
mov rcx,2875F4373FFF
cmp rdi,rcx
ja short 00000000000002F8
mov rcx,rdi
mov rdx,rbp
call qword ptr [0BAE0]
mov [rsp+28],rax
mov [rsp+20],bx
vmovupd xmm0,[rsp+20]
vmovupd [rsi],xmm0
mov rax,rsi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov rcx,rbp
call qword ptr [0F270]
mov rcx,rax
jmp near ptr 0000000000000240
test rdi,rdi
jl short 00000000000002F4
mov rdi,2875F4373FFF
jmp short 00000000000002F6
xor edi,edi
jmp short 0000000000000280
call qword ptr [0F7F8]
int 3
test bl,bl
je short 00000000000002E3
mov rcx,offset MT_System.ArgumentException
call 000000000000A6A0
mov rdi,rax
mov ecx,355F
mov rdx,7FF8D3564000
call 0000000000001EF0
mov rcx,rax
call qword ptr [5030]
mov rdx,rax
mov rcx,rdi
call qword ptr [0BB88]
mov rcx,rdi
call 000000000000C1B0
int 3
; Total bytes of code 311
Compare Jit Disasm
; System.Tests.Perf_DateTimeOffset.GetNow()
push rsi
sub rsp,20
mov rsi,rdx
call qword ptr [0B918]
mov rdx,rax
mov rcx,rsi
mov r8d,1
add rsp,20
pop rsi
jmp qword ptr [0D918]
; Total bytes of code 37
; System.DateTime.get_UtcNow()
push rbp
push rdi
push rsi
sub rsp,30
lea rbp,[rsp+40]
lea rcx,[rbp+0FFE8]
mov rax,7FFC7BEE2570
call rax
mov rsi,[rbp+0FFE8]
mov rax,193EAC00228
mov rdi,[rax]
sub rsi,[rdi+8]
cmp dword ptr [5D3C],0
jne short 000000000000FFB2
mov eax,0B2D05E00
cmp rsi,rax
jae short 000000000000FFA3
mov rax,rsi
add rax,[rdi+10]
add rsp,30
pop rsi
pop rdi
pop rbp
ret
call qword ptr [0B9A8]
nop
add rsp,30
pop rsi
pop rdi
pop rbp
ret
call 000000000000DDD0
jmp short 000000000000FF8A
; Total bytes of code 105
; System.DateTimeOffset.ToLocalTime(System.DateTime, Boolean)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,30
vzeroupper
mov rsi,rcx
mov rdi,rdx
mov ebx,r8d
mov rcx,193EAC00408
mov rbp,[rcx]
mov rcx,[rbp+8]
test rcx,rcx
je near ptr 00000000000000A2
mov rdx,rdi
mov r9,rbp
mov r8d,2
cmp [rcx],ecx
call qword ptr [1948]
mov rbp,rax
mov r14,0FFFFFFFFFFFF
and rdi,r14
add rdi,rbp
js near ptr 00000000000000CF
mov rcx,2875F4373FFF
cmp rdi,rcx
jg near ptr 00000000000000CF
vxorps xmm0,xmm0,xmm0
vmovupd [rsp+20],xmm0
mov rcx,rbp
call qword ptr [0DAC8]
mov ebx,eax
mov rcx,2875F4373FFF
cmp rdi,rcx
ja short 00000000000000C8
mov rcx,rdi
mov rdx,rbp
call qword ptr [0DAE0]
mov [rsp+28],rax
mov [rsp+20],bx
vmovupd xmm0,[rsp+20]
vmovupd [rsi],xmm0
mov rax,rsi
add rsp,30
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
mov rcx,rbp
call qword ptr [3270]
mov rcx,rax
jmp near ptr 0000000000000010
test rdi,rdi
jl short 00000000000000C4
mov rdi,2875F4373FFF
jmp short 00000000000000C6
xor edi,edi
jmp short 0000000000000050
call qword ptr [97E0]
int 3
test bl,bl
je short 00000000000000B3
mov rcx,offset MT_System.ArgumentException
call 000000000000C390
mov rdi,rax
mov ecx,355F
mov rdx,7FFBC2364000
call 00000000000014A0
mov rcx,rax
call qword ptr [9030]
mov rdx,rax
mov rcx,rdi
call qword ptr [0BB88]
mov rcx,rdi
call 0000000000004690
int 3
; Total bytes of code 311
System.Tests.Perf_DateTimeOffset.ToString(format: "r")
Description of detection logic
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 38.864848670745346 < 41.15242073981757.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/31/2022 12:39:41 PM, 8/5/2022 10:47:59 PM falls between 7/28/2022 9:13:34 AM and 8/5/2022 10:47:59 PM.
IsImprovementStdDev: Marked as improvement because 25.386469194413117 (T) = (0 -38.575201105753436) / Math.Sqrt((11.607034564783692 / (299)) + (0.1977135072032935 / (34))) is greater than 1.9671567996108528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (34) - 2, .975) and 0.12206530011495058 = (43.93857665132065 - 38.575201105753436) / 43.93857665132065 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Tests.Perf_DateTimeOffset.ToString(System.String)
push rdi
push rsi
sub rsp,28
mov rsi,rdx
cmp [rcx],cl
lea rdi,[rcx+8]
mov rcx,rdi
call qword ptr [0B318]
mov rcx,rax
movsx rdx,word ptr [rdi]
movsxd rdx,edx
imul rdx,3C
mov r9,0D6BF94D5E5
cmp rdx,r9
jg short 000000000000F4ED
mov r9,0FF29406B2A1B
cmp rdx,r9
jl short 000000000000F4ED
imul r9,rdx,989680
mov rdx,rsi
xor r8d,r8d
add rsp,28
pop rsi
pop rdi
jmp qword ptr [0D978]
call qword ptr [7678]
int 3
; Total bytes of code 100
; System.DateTimeOffset.get_ClockDateTime()
sub rsp,28
mov rdx,[rcx+8]
movsx rcx,word ptr [rcx]
movsxd rcx,ecx
imul rcx,3C
mov rax,0D6BF94D5E5
cmp rcx,rax
jg short 000000000000F5FC
mov rax,0FF29406B2A1B
cmp rcx,rax
jl short 000000000000F5FC
imul rcx,989680
mov [rsp+20],rcx
mov rcx,rdx
mov rdx,[rsp+20]
call qword ptr [1450]
mov rdx,0FFFFFFFFFFFF
and rax,rdx
mov rdx,2875F4373FFF
cmp rax,rdx
ja short 000000000000F603
add rsp,28
ret
call qword ptr [7678]
int 3
call qword ptr [0F738]
int 3
; Total bytes of code 122
; System.DateTimeFormat.Format(System.DateTime, System.String, System.IFormatProvider, System.TimeSpan)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
mov rax,0FFFFFFFFFFA0
vmovdqa xmmword ptr [rbp+rax+70],xmm4
vmovdqa xmmword ptr [rbp+rax+80],xmm4
vmovdqa xmmword ptr [rbp+rax+90],xmm4
add rax,30
jne short 000000000000F6A0
mov rax,36A019E5EA85
mov [rbp+8],rax
mov rsi,rcx
mov rax,r8
mov rdi,r9
test rdx,rdx
je short 000000000000F74A
mov ebx,[rdx+8]
cmp ebx,1
jne short 000000000000F74A
movzx ecx,word ptr [rdx+0C]
or ecx,20
cmp ecx,6F
je near ptr 000000000000F7EA
cmp ecx,72
jne short 000000000000F74A
mov ecx,1D
call 0
mov rbx,rax
lea rcx,[rbx+0C]
mov edx,[rbx+8]
mov [rbp+20],rcx
mov [rbp+28],edx
mov rcx,rsi
mov rdx,rdi
lea r8,[rbp+20]
lea r9,[rbp+40]
call qword ptr [0DA80]
mov rax,rbx
mov rcx,36A019E5EA85
cmp [rbp+8],rcx
je short 000000000000F73E
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,200
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],100
mov rcx,[rbp+30]
mov r8d,[rbp+38]
xor r9d,r9d
mov [rbp+50],r9
mov [rbp+60],rcx
mov [rbp+68],r8d
mov [rbp+58],r9d
test rdx,rdx
je near ptr 000000000000F85F
lea rcx,[rdx+0C]
mov ebx,[rdx+8]
mov r8d,ebx
mov [rbp+10],rcx
mov [rbp+18],r8d
mov rcx,rax
call qword ptr [31B0]
mov r8,rax
lea rdx,[rbp+50]
mov [rsp+20],rdx
lea rdx,[rbp+10]
mov rcx,rsi
mov r9,rdi
call qword ptr [0D9C0]
lea rcx,[rbp+50]
call qword ptr [0D420]
mov rcx,36A019E5EA85
cmp [rbp+8],rcx
je short 000000000000F7DE
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,50
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],21
mov rbx,[rbp+30]
mov r14d,[rbp+38]
mov rcx,rsi
mov rdx,rdi
mov [rbp+20],rbx
mov [rbp+28],r14d
lea r8,[rbp+20]
lea r9,[rbp+48]
call qword ptr [0DA68]
mov ecx,[rbp+48]
cmp ecx,r14d
ja short 000000000000F869
mov [rbp+30],rbx
mov [rbp+38],ecx
lea rcx,[rbp+30]
call qword ptr [1B10]
mov rcx,36A019E5EA85
cmp [rbp+8],rcx
je short 000000000000F853
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
xor ecx,ecx
xor r8d,r8d
jmp near ptr 000000000000F792
call qword ptr [7498]
int 3
; Total bytes of code 496
Compare Jit Disasm
; System.Tests.Perf_DateTimeOffset.ToString(System.String)
push rdi
push rsi
sub rsp,28
mov rsi,rdx
cmp [rcx],cl
lea rdi,[rcx+8]
mov rcx,rdi
call qword ptr [0D318]
mov rcx,rax
movsx rdx,word ptr [rdi]
movsxd rdx,edx
imul rdx,3C
mov r9,0D6BF94D5E5
cmp rdx,r9
jg short 000000000000FCAD
mov r9,0FF29406B2A1B
cmp rdx,r9
jl short 000000000000FCAD
imul r9,rdx,989680
mov rdx,rsi
xor r8d,r8d
add rsp,28
pop rsi
pop rdi
jmp qword ptr [1978]
call qword ptr [0B678]
int 3
; Total bytes of code 100
; System.DateTimeOffset.get_ClockDateTime()
sub rsp,28
mov rdx,[rcx+8]
movsx rcx,word ptr [rcx]
movsxd rcx,ecx
imul rcx,3C
mov rax,0D6BF94D5E5
cmp rcx,rax
jg short 000000000000F55C
mov rax,0FF29406B2A1B
cmp rcx,rax
jl short 000000000000F55C
imul rcx,989680
mov [rsp+20],rcx
mov rcx,rdx
mov rdx,[rsp+20]
call qword ptr [0B450]
mov rdx,0FFFFFFFFFFFF
and rax,rdx
mov rdx,2875F4373FFF
cmp rax,rdx
ja short 000000000000F563
add rsp,28
ret
call qword ptr [0B678]
int 3
call qword ptr [97E0]
int 3
; Total bytes of code 122
; System.DateTimeFormat.Format(System.DateTime, System.String, System.IFormatProvider, System.TimeSpan)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
mov rax,0FFFFFFFFFFA0
vmovdqa xmmword ptr [rbp+rax+70],xmm4
vmovdqa xmmword ptr [rbp+rax+80],xmm4
vmovdqa xmmword ptr [rbp+rax+90],xmm4
add rax,30
jne short 000000000000F600
mov rax,0AACFD15014CF
mov [rbp+8],rax
mov rsi,rcx
mov rax,r8
mov rdi,r9
test rdx,rdx
je short 000000000000F6AA
mov ebx,[rdx+8]
cmp ebx,1
jne short 000000000000F6AA
movzx ecx,word ptr [rdx+0C]
or ecx,20
cmp ecx,6F
je near ptr 000000000000F74A
cmp ecx,72
jne short 000000000000F6AA
mov ecx,1D
call 0
mov rbx,rax
lea rcx,[rbx+0C]
mov edx,[rbx+8]
mov [rbp+20],rcx
mov [rbp+28],edx
mov rcx,rsi
mov rdx,rdi
lea r8,[rbp+20]
lea r9,[rbp+40]
call qword ptr [1A80]
mov rax,rbx
mov rcx,0AACFD15014CF
cmp [rbp+8],rcx
je short 000000000000F69E
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,200
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],100
mov rcx,[rbp+30]
mov r8d,[rbp+38]
xor r9d,r9d
mov [rbp+50],r9
mov [rbp+60],rcx
mov [rbp+68],r8d
mov [rbp+58],r9d
test rdx,rdx
je near ptr 000000000000F7BF
lea rcx,[rdx+0C]
mov ebx,[rdx+8]
mov r8d,ebx
mov [rbp+10],rcx
mov [rbp+18],r8d
mov rcx,rax
call qword ptr [71B0]
mov r8,rax
lea rdx,[rbp+50]
mov [rsp+20],rdx
lea rdx,[rbp+10]
mov rcx,rsi
mov r9,rdi
call qword ptr [19C0]
lea rcx,[rbp+50]
call qword ptr [1420]
mov rcx,0AACFD15014CF
cmp [rbp+8],rcx
je short 000000000000F73E
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,50
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],21
mov rbx,[rbp+30]
mov r14d,[rbp+38]
mov rcx,rsi
mov rdx,rdi
mov [rbp+20],rbx
mov [rbp+28],r14d
lea r8,[rbp+20]
lea r9,[rbp+48]
call qword ptr [1A68]
mov ecx,[rbp+48]
cmp ecx,r14d
ja short 000000000000F7C9
mov [rbp+30],rbx
mov [rbp+38],ecx
lea rcx,[rbp+30]
call qword ptr [3510]
mov rcx,0AACFD15014CF
cmp [rbp+8],rcx
je short 000000000000F7B3
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
xor ecx,ecx
xor r8d,r8d
jmp near ptr 000000000000F6F2
call qword ptr [0B498]
int 3
; Total bytes of code 496
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Details
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_DateTime.ToString(format: "r")
Description of detection logic
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 30.924281546151693 < 33.31920051624428.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/31/2022 12:39:41 PM, 8/5/2022 10:47:59 PM falls between 7/28/2022 9:13:34 AM and 8/5/2022 10:47:59 PM.
IsImprovementStdDev: Marked as improvement because 23.349663838817865 (T) = (0 -30.837207217128586) / Math.Sqrt((12.906726054274369 / (299)) + (0.07478491770103321 / (34))) is greater than 1.9671567996108528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (34) - 2, .975) and 0.13887839078758757 = (35.81051373839347 - 30.837207217128586) / 35.81051373839347 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Tests.Perf_DateTime.ToString(System.String)
mov rcx,[rcx+8]
mov r9,0
xor r8d,r8d
jmp qword ptr [0D978]
; Total bytes of code 23
; System.DateTimeFormat.Format(System.DateTime, System.String, System.IFormatProvider, System.TimeSpan)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
mov rax,0FFFFFFFFFFA0
vmovdqa xmmword ptr [rbp+rax+70],xmm4
vmovdqa xmmword ptr [rbp+rax+80],xmm4
vmovdqa xmmword ptr [rbp+rax+90],xmm4
add rax,30
jne short 000000000000F490
mov rax,0CAC14CD7BD2
mov [rbp+8],rax
mov rsi,rcx
mov rax,r8
mov rdi,r9
test rdx,rdx
je short 000000000000F53A
mov ebx,[rdx+8]
cmp ebx,1
jne short 000000000000F53A
movzx ecx,word ptr [rdx+0C]
or ecx,20
cmp ecx,6F
je near ptr 000000000000F5DA
cmp ecx,72
jne short 000000000000F53A
mov ecx,1D
call 0
mov rbx,rax
lea rcx,[rbx+0C]
mov edx,[rbx+8]
mov [rbp+20],rcx
mov [rbp+28],edx
mov rcx,rsi
mov rdx,rdi
lea r8,[rbp+20]
lea r9,[rbp+40]
call qword ptr [0DA80]
mov rax,rbx
mov rcx,0CAC14CD7BD2
cmp [rbp+8],rcx
je short 000000000000F52E
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,200
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],100
mov rcx,[rbp+30]
mov r8d,[rbp+38]
xor r9d,r9d
mov [rbp+50],r9
mov [rbp+60],rcx
mov [rbp+68],r8d
mov [rbp+58],r9d
test rdx,rdx
je near ptr 000000000000F64F
lea rcx,[rdx+0C]
mov ebx,[rdx+8]
mov r8d,ebx
mov [rbp+10],rcx
mov [rbp+18],r8d
mov rcx,rax
call qword ptr [31B0]
mov r8,rax
lea rdx,[rbp+50]
mov [rsp+20],rdx
lea rdx,[rbp+10]
mov rcx,rsi
mov r9,rdi
call qword ptr [0D9C0]
lea rcx,[rbp+50]
call qword ptr [0D420]
mov rcx,0CAC14CD7BD2
cmp [rbp+8],rcx
je short 000000000000F5CE
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,50
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],21
mov rbx,[rbp+30]
mov r14d,[rbp+38]
mov rcx,rsi
mov rdx,rdi
mov [rbp+20],rbx
mov [rbp+28],r14d
lea r8,[rbp+20]
lea r9,[rbp+48]
call qword ptr [0DA68]
mov ecx,[rbp+48]
cmp ecx,r14d
ja short 000000000000F659
mov [rbp+30],rbx
mov [rbp+38],ecx
lea rcx,[rbp+30]
call qword ptr [1B10]
mov rcx,0CAC14CD7BD2
cmp [rbp+8],rcx
je short 000000000000F643
call 0000000000009600
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
xor ecx,ecx
xor r8d,r8d
jmp near ptr 000000000000F582
call qword ptr [7498]
int 3
; Total bytes of code 496
Compare Jit Disasm
; System.Tests.Perf_DateTime.ToString(System.String)
mov rcx,[rcx+8]
mov r9,0
xor r8d,r8d
jmp qword ptr [1978]
; Total bytes of code 23
; System.DateTimeFormat.Format(System.DateTime, System.String, System.IFormatProvider, System.TimeSpan)
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp,0A0
lea rbp,[rsp+30]
vxorps xmm4,xmm4,xmm4
mov rax,0FFFFFFFFFFA0
vmovdqa xmmword ptr [rbp+rax+70],xmm4
vmovdqa xmmword ptr [rbp+rax+80],xmm4
vmovdqa xmmword ptr [rbp+rax+90],xmm4
add rax,30
jne short 000000000000F470
mov rax,0A6BCB321D21C
mov [rbp+8],rax
mov rsi,rcx
mov rax,r8
mov rdi,r9
test rdx,rdx
je short 000000000000F51A
mov ebx,[rdx+8]
cmp ebx,1
jne short 000000000000F51A
movzx ecx,word ptr [rdx+0C]
or ecx,20
cmp ecx,6F
je near ptr 000000000000F5BA
cmp ecx,72
jne short 000000000000F51A
mov ecx,1D
call 0
mov rbx,rax
lea rcx,[rbx+0C]
mov edx,[rbx+8]
mov [rbp+20],rcx
mov [rbp+28],edx
mov rcx,rsi
mov rdx,rdi
lea r8,[rbp+20]
lea r9,[rbp+40]
call qword ptr [1A80]
mov rax,rbx
mov rcx,0A6BCB321D21C
cmp [rbp+8],rcx
je short 000000000000F50E
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,200
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],100
mov rcx,[rbp+30]
mov r8d,[rbp+38]
xor r9d,r9d
mov [rbp+50],r9
mov [rbp+60],rcx
mov [rbp+68],r8d
mov [rbp+58],r9d
test rdx,rdx
je near ptr 000000000000F62F
lea rcx,[rdx+0C]
mov ebx,[rdx+8]
mov r8d,ebx
mov [rbp+10],rcx
mov [rbp+18],r8d
mov rcx,rax
call qword ptr [71B0]
mov r8,rax
lea rdx,[rbp+50]
mov [rsp+20],rdx
lea rdx,[rbp+10]
mov rcx,rsi
mov r9,rdi
call qword ptr [19C0]
lea rcx,[rbp+50]
call qword ptr [1420]
mov rcx,0A6BCB321D21C
cmp [rbp+8],rcx
je short 000000000000F5AE
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
test [rsp],esp
sub rsp,50
lea rcx,[rsp+30]
mov [rbp+30],rcx
mov dword ptr [rbp+38],21
mov rbx,[rbp+30]
mov r14d,[rbp+38]
mov rcx,rsi
mov rdx,rdi
mov [rbp+20],rbx
mov [rbp+28],r14d
lea r8,[rbp+20]
lea r9,[rbp+48]
call qword ptr [1A68]
mov ecx,[rbp+48]
cmp ecx,r14d
ja short 000000000000F639
mov [rbp+30],rbx
mov [rbp+38],ecx
lea rcx,[rbp+30]
call qword ptr [3510]
mov rcx,0A6BCB321D21C
cmp [rbp+8],rcx
je short 000000000000F623
call 00000000000081F0
nop
lea rsp,[rbp+70]
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
xor ecx,ecx
xor r8d,r8d
jmp near ptr 000000000000F562
call qword ptr [0B498]
int 3
; Total bytes of code 496
System.Tests.Perf_DateTime.GetNow
Description of detection logic
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 112.53012021499879 < 115.20828231927916.
IsChangePoint: Marked as a change because one of 7/31/2022 12:39:41 PM, 8/5/2022 10:47:59 PM falls between 7/28/2022 9:13:34 AM and 8/5/2022 10:47:59 PM.
IsImprovementStdDev: Marked as improvement because 35.822206253166755 (T) = (0 -110.83759334745154) / Math.Sqrt((0.7339766979906134 / (299)) + (2.909533244628924 / (34))) is greater than 1.9671567996108528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (34) - 2, .975) and 0.08750066824400388 = (121.46594467544192 - 110.83759334745154) / 121.46594467544192 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Tests.Perf_DateTime.GetNow()
jmp qword ptr [1018]
; Total bytes of code 6
; System.DateTime.get_Now()
push rdi
push rsi
sub rsp,38
lea rcx,[rsp+28]
mov rax,7FF879AA2570
call rax
mov rsi,[rsp+28]
mov rax,230FC000228
mov rdi,[rax]
sub rsi,[rdi+8]
cmp dword ptr [6CDC],0
jne near ptr 000000000000FD31
mov eax,0B2D05E00
cmp rsi,rax
jae short 000000000000FCAA
add rsi,[rdi+10]
jmp short 000000000000FCB3
call qword ptr [19A8]
mov rsi,rax
mov rcx,rsi
lea rdx,[rsp+30]
call qword ptr [0F138]
mov rdx,0FFFFFFFFFFFF
and rdx,rsi
add rax,rdx
mov rdx,2875F4373FFF
cmp rax,rdx
ja short 000000000000FD0F
cmp byte ptr [rsp+30],0
jne short 000000000000FCFB
mov rdx,0
or rax,rdx
add rsp,38
pop rsi
pop rdi
ret
mov rdx,0
or rax,rdx
add rsp,38
pop rsi
pop rdi
ret
test rax,rax
jl short 000000000000FD20
mov rax,2875F4373FFF
jmp short 000000000000FD2A
mov rax,0
add rsp,38
pop rsi
pop rdi
ret
call 000000000000EAE0
jmp near ptr 000000000000FC9A
; Total bytes of code 219
Compare Jit Disasm
; System.Tests.Perf_DateTime.GetNow()
jmp qword ptr [0B018]
; Total bytes of code 6
; System.DateTime.get_Now()
push rdi
push rsi
sub rsp,38
lea rcx,[rsp+28]
mov rax,7FFC1A672570
call rax
mov rsi,[rsp+28]
mov rax,18C1C400228
mov rdi,[rax]
sub rsi,[rdi+8]
cmp dword ptr [5D3C],0
jne near ptr 000000000000FB11
mov eax,0B2D05E00
cmp rsi,rax
jae short 000000000000FA8A
add rsi,[rdi+10]
jmp short 000000000000FA93
call qword ptr [0B9A8]
mov rsi,rax
mov rcx,rsi
lea rdx,[rsp+30]
call qword ptr [3138]
mov rdx,0FFFFFFFFFFFF
and rdx,rsi
add rax,rdx
mov rdx,2875F4373FFF
cmp rax,rdx
ja short 000000000000FAEF
cmp byte ptr [rsp+30],0
jne short 000000000000FADB
mov rdx,0
or rax,rdx
add rsp,38
pop rsi
pop rdi
ret
mov rdx,0
or rax,rdx
add rsp,38
pop rsi
pop rdi
ret
test rax,rax
jl short 000000000000FB00
mov rax,2875F4373FFF
jmp short 000000000000FB0A
mov rax,0
add rsp,38
pop rsi
pop rdi
ret
call 000000000000DDD0
jmp near ptr 000000000000FA7A
; Total bytes of code 219
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Details
Payloads
Baseline
Compare
Histogram
System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDateTimeOffsetNow(value: 12/30/2017 3:45:22 AM -08:00)
Description of detection logic
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 35.03289230039662 < 35.83354198578986.
IsChangePoint: Marked as a change because one of 7/2/2022 7:35:06 PM, 7/6/2022 3:55:24 AM, 7/31/2022 12:39:41 PM, 8/5/2022 10:47:59 PM falls between 7/28/2022 9:13:34 AM and 8/5/2022 10:47:59 PM.
IsImprovementStdDev: Marked as improvement because 22.111866122853318 (T) = (0 -34.70474971846614) / Math.Sqrt((8.903844626868414 / (299)) + (0.04413634963430493 / (34))) is greater than 1.9671567996108528 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (34) - 2, .975) and 0.1009777256143543 = (38.602769594537484 - 34.70474971846614) / 38.602769594537484 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDateTimeOffsetNow(System.DateTimeOffset)
push rdi
push rsi
sub rsp,48
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
xor eax,eax
mov [rsp+40],rax
mov rcx,[rcx+8]
test rcx,rcx
je short 000000000000F93B
lea rsi,[rcx+10]
mov edi,[rcx+8]
mov rcx,rdx
mov [rsp+30],rsi
mov [rsp+38],edi
mov byte ptr [rsp+28],0
mov byte ptr [rsp+29],0
lea rdx,[rsp+30]
movsx r9,word ptr [rsp+28]
lea r8,[rsp+40]
call qword ptr [0D9F0]
nop
add rsp,48
pop rsi
pop rdi
ret
xor esi,esi
xor edi,edi
jmp short 000000000000F907
; Total bytes of code 97
; System.Buffers.Text.Utf8Formatter.TryFormat(System.DateTimeOffset, System.Span`1<Byte>, Int32 ByRef, System.Buffers.StandardFormat)
push rdi
push rsi
push rbp
push rbx
sub rsp,38
vzeroupper
xor eax,eax
mov [rsp+28],rax
mov [rsp+78],r9
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
mov rcx,21C47400750
mov rcx,[rcx]
mov rbp,[rcx+8]
movzx ecx,byte ptr [rsp+78]
mov eax,ecx
test ecx,ecx
jne short 000000000000FA10
cmp byte ptr [rsp+79],0
jne short 000000000000FA10
mov eax,47
movsx rcx,word ptr [rsi]
movsxd rcx,ecx
imul rcx,3C
mov rdx,0D6BF94D5E5
cmp rcx,rdx
jg near ptr 000000000000FB3A
mov rdx,0FF29406B2A1B
cmp rcx,rdx
jl near ptr 000000000000FB3A
imul rbp,rcx,989680
cmp eax,4F
ja short 000000000000FA39
cmp eax,47
je near ptr 000000000000FAD1
cmp eax,4F
jne near ptr 000000000000FB41
mov rcx,rsi
call qword ptr [0B318]
mov rcx,rax
movsx rbp,word ptr [rsi]
jmp short 000000000000FA83
cmp eax,52
je near ptr 000000000000FB02
cmp eax,6C
jne near ptr 000000000000FB41
mov rcx,[rsi+8]
mov rdx,0FFFFFFFFFFFF
and rcx,rdx
mov rdx,0
or rcx,rdx
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea rdx,[rsp+28]
mov r8,rbx
call qword ptr [0DA38]
jmp short 000000000000FAF8
movsxd rdx,ebp
imul rdx,3C
mov r8,0D6BF94D5E5
cmp rdx,r8
jg near ptr 000000000000FB3A
mov r8,0FF29406B2A1B
cmp rdx,r8
jl near ptr 000000000000FB3A
imul rdx,989680
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea r8,[rsp+28]
mov r9,rbx
call qword ptr [0DA50]
jmp short 000000000000FAF8
mov rcx,rsi
call qword ptr [0B318]
mov rcx,rax
mov rdx,rbp
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea r8,[rsp+28]
mov r9,rbx
call qword ptr [0DA20]
nop
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
mov rcx,[rsi+8]
mov rdx,0FFFFFFFFFFFF
and rcx,rdx
mov rdx,0
or rcx,rdx
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea rdx,[rsp+28]
mov r8,rbx
call qword ptr [0DA68]
jmp short 000000000000FAF8
call qword ptr [7678]
int 3
xor eax,eax
mov [rbx],eax
call qword ptr [7B28]
int 3
; Total bytes of code 444
Compare Jit Disasm
; System.Buffers.Text.Tests.Utf8FormatterTests.FormatterDateTimeOffsetNow(System.DateTimeOffset)
push rdi
push rsi
sub rsp,48
vxorps xmm4,xmm4,xmm4
vmovdqa xmmword ptr [rsp+30],xmm4
xor eax,eax
mov [rsp+40],rax
mov rcx,[rcx+8]
test rcx,rcx
je short 000000000000F91B
lea rsi,[rcx+10]
mov edi,[rcx+8]
mov rcx,rdx
mov [rsp+30],rsi
mov [rsp+38],edi
mov byte ptr [rsp+28],0
mov byte ptr [rsp+29],0
lea rdx,[rsp+30]
movsx r9,word ptr [rsp+28]
lea r8,[rsp+40]
call qword ptr [19F0]
nop
add rsp,48
pop rsi
pop rdi
ret
xor esi,esi
xor edi,edi
jmp short 000000000000F8E7
; Total bytes of code 97
; System.Buffers.Text.Utf8Formatter.TryFormat(System.DateTimeOffset, System.Span`1<Byte>, Int32 ByRef, System.Buffers.StandardFormat)
push rdi
push rsi
push rbp
push rbx
sub rsp,38
vzeroupper
xor eax,eax
mov [rsp+28],rax
mov [rsp+78],r9
mov rsi,rcx
mov rdi,rdx
mov rbx,r8
mov rcx,14287400750
mov rcx,[rcx]
mov rbp,[rcx+8]
movzx ecx,byte ptr [rsp+78]
mov eax,ecx
test ecx,ecx
jne short 000000000000F9F0
cmp byte ptr [rsp+79],0
jne short 000000000000F9F0
mov eax,47
movsx rcx,word ptr [rsi]
movsxd rcx,ecx
imul rcx,3C
mov rdx,0D6BF94D5E5
cmp rcx,rdx
jg near ptr 000000000000FB1A
mov rdx,0FF29406B2A1B
cmp rcx,rdx
jl near ptr 000000000000FB1A
imul rbp,rcx,989680
cmp eax,4F
ja short 000000000000FA19
cmp eax,47
je near ptr 000000000000FAB1
cmp eax,4F
jne near ptr 000000000000FB21
mov rcx,rsi
call qword ptr [0D318]
mov rcx,rax
movsx rbp,word ptr [rsi]
jmp short 000000000000FA63
cmp eax,52
je near ptr 000000000000FAE2
cmp eax,6C
jne near ptr 000000000000FB21
mov rcx,[rsi+8]
mov rdx,0FFFFFFFFFFFF
and rcx,rdx
mov rdx,0
or rcx,rdx
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea rdx,[rsp+28]
mov r8,rbx
call qword ptr [1A38]
jmp short 000000000000FAD8
movsxd rdx,ebp
imul rdx,3C
mov r8,0D6BF94D5E5
cmp rdx,r8
jg near ptr 000000000000FB1A
mov r8,0FF29406B2A1B
cmp rdx,r8
jl near ptr 000000000000FB1A
imul rdx,989680
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea r8,[rsp+28]
mov r9,rbx
call qword ptr [1A50]
jmp short 000000000000FAD8
mov rcx,rsi
call qword ptr [0D318]
mov rcx,rax
mov rdx,rbp
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea r8,[rsp+28]
mov r9,rbx
call qword ptr [1A20]
nop
add rsp,38
pop rbx
pop rbp
pop rsi
pop rdi
ret
mov rcx,[rsi+8]
mov rdx,0FFFFFFFFFFFF
and rcx,rdx
mov rdx,0
or rcx,rdx
vmovdqu xmm0,xmmword ptr [rdi]
vmovdqu xmmword ptr [rsp+28],xmm0
lea rdx,[rsp+28]
mov r8,rbx
call qword ptr [1A68]
jmp short 000000000000FAD8
call qword ptr [0B678]
int 3
xor eax,eax
mov [rbx],eax
call qword ptr [0BB28]
int 3
; Total bytes of code 444
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository