-
Notifications
You must be signed in to change notification settings - Fork 3
Closed
Description
Run Information
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | de005e5ea950f852df5befac7c06ae2f717bfc29 |
| Compare | 9129083c2fc6ef32479168f0555875b54aee4dfb |
| Diff | Diff |
Improvements in System.Tests.Perf_Char
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| Char_ToUpperInvariant - Duration of single invocation | 30.32 ns | 15.92 ns | 0.53 | 0.03 | False | |||||
| Char_ToLowerInvariant - Duration of single invocation | 30.08 ns | 15.34 ns | 0.51 | 0.03 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Char*'Details
Payloads
Histogram
System.Tests.Perf_Char.Char_ToUpperInvariant(input: "Hello World!")
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 15.92332978274221 < 28.47682296133271.
IsChangePoint: Marked as a change because one of 9/23/2022 1:16:35 AM, 9/29/2022 7:42:19 AM, 10/11/2022 8:42:28 PM, 10/17/2022 3:19:47 PM, 11/2/2022 9:35:40 AM, 11/7/2022 4:10:19 PM, 11/20/2022 11:32:49 PM, 11/22/2022 2:20:42 AM falls between 11/13/2022 1:28:42 PM and 11/22/2022 2:20:42 AM.
IsImprovementStdDev: Marked as improvement because 77.18983117049477 (T) = (0 -15.699632211135299) / Math.Sqrt((6.81404340917355 / (299)) + (0.021253948915863997 / (5))) is greater than 1.9678502273660254 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (5) - 2, .975) and 0.44705318033345204 = (28.392662101941177 - 15.699632211135299) / 28.392662101941177 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Compare Jit Disasm
```assembly
; System.Tests.Perf_Char.Char_ToUpperInvariant(System.String)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,40
xor eax,eax
mov [rsp+38],rax
mov rsi,rdx
xor edi,edi
xor ebx,ebx
mov ebp,[rsi+8]
test ebp,ebp
jle short M00_L04
M00_L00:
mov r9d,ebx
movzx r9d,word ptr [rsi+r9*2+0C]
cmp r9d,7F
ja short M00_L02
lea edx,[r9-61]
cmp edx,19
ja short M00_L01
and r9d,5F
M00_L01:
mov r14d,r9d
jmp short M00_L03
M00_L02:
mov rdx,2835CC00718
mov rcx,[rdx]
mov [rsp+30],r9w
xor r9d,r9d
mov [rsp+38],r9d
mov dword ptr [rsp+20],1
mov dword ptr [rsp+28],1
lea r9,[rsp+38]
lea rdx,[rsp+30]
mov r8d,1
call qword ptr [7FF887717D08]
movzx r14d,word ptr [rsp+38]
M00_L03:
add edi,r14d
inc ebx
cmp ebp,ebx
jg short M00_L00
M00_L04:
mov eax,edi
add rsp,40
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 157
System.Tests.Perf_Char.Char_ToLowerInvariant(input: "Hello World!")
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 15.33936798975388 < 28.421741662965232.
IsChangePoint: Marked as a change because one of 9/6/2022 1:06:44 PM, 9/23/2022 1:16:35 AM, 9/29/2022 7:42:19 AM, 10/11/2022 8:42:28 PM, 10/17/2022 3:19:47 PM, 11/2/2022 9:35:40 AM, 11/7/2022 4:10:19 PM, 11/20/2022 11:32:49 PM, 11/22/2022 2:20:42 AM falls between 11/13/2022 1:28:42 PM and 11/22/2022 2:20:42 AM.
IsImprovementStdDev: Marked as improvement because 71.87177437651178 (T) = (0 -15.344066499676298) / Math.Sqrt((9.177259481156018 / (299)) + (0.00046580496224329503 / (5))) is greater than 1.9678502273660254 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (5) - 2, .975) and 0.4511098660950373 = (27.954713615481086 - 15.344066499676298) / 27.954713615481086 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Compare Jit Disasm
```assembly
; System.Tests.Perf_Char.Char_ToLowerInvariant(System.String)
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp,40
xor eax,eax
mov [rsp+38],rax
mov rsi,rdx
xor edi,edi
xor ebx,ebx
mov ebp,[rsi+8]
test ebp,ebp
jle short M00_L05
M00_L00:
mov r9d,ebx
movzx r9d,word ptr [rsi+r9*2+0C]
cmp r9d,7F
ja short M00_L03
lea edx,[r9-41]
cmp edx,19
jbe short M00_L02
M00_L01:
mov r14d,r9d
jmp short M00_L04
M00_L02:
or r9d,20
movzx r9d,r9b
jmp short M00_L01
M00_L03:
mov rdx,21D27400718
mov rcx,[rdx]
mov [rsp+30],r9w
xor r9d,r9d
mov [rsp+38],r9d
mov dword ptr [rsp+20],1
mov [rsp+28],r9d
lea r9,[rsp+38]
lea rdx,[rsp+30]
mov r8d,1
call qword ptr [7FFF27547D08]
movzx r14d,word ptr [rsp+38]
M00_L04:
add edi,r14d
inc ebx
cmp ebp,ebx
jg short M00_L00
M00_L05:
mov eax,edi
add rsp,40
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
ret
; Total bytes of code 160
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

