-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
tenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmark
Description
Run Information
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | bc183b8208b7a2b3310715ad2181d6a4720a159c |
| Compare | 071fe7ce868a63113143b949c3c4185f9e5578cf |
| Diff | Diff |
Regressions in System.IO.Tests.Perf_Path
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| GetPathRoot - Duration of single invocation | 28.73 ns | 30.69 ns | 1.07 | 0.02 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.IO.Tests.Perf_Path*'Payloads
Histogram
System.IO.Tests.Perf_Path.GetPathRoot
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 30.686773278953897 > 30.230685990506515.
IsChangePoint: Marked as a change because one of 8/5/2022 10:47:59 PM, 9/9/2022 3:12:19 AM, 9/13/2022 2:30:06 AM falls between 9/4/2022 8:45:57 AM and 9/13/2022 2:30:06 AM.
IsRegressionStdDev: Marked as regression because -20.65085902998708 (T) = (0 -31.036276806922494) / Math.Sqrt((0.16816385039880005 / (40)) + (0.14906292245135205 / (17))) is less than -2.0040447832881556 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (40) + (17) - 2, .025) and -0.08199873573093718 = (28.684208014306172 - 31.036276806922494) / 28.684208014306172 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.IO.Tests.Perf_Path.GetPathRoot()
push rbp
sub rsp,20
lea rbp,[rsp+20]
mov [rbp+10],rcx
mov rcx,[rbp+10]
mov rcx,[rcx+8]
call qword ptr [System.IO.Path.GetPathRoot(System.String)]
nop
add rsp,20
pop rbp
ret
add [rcx],bl
add eax,32050002
add [rax],edx
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax+65],ch
(bad)
; Total bytes of code 60
; System.IO.Path.GetPathRoot(System.String)
push rsi
sub rsp,40
xorps xmm4,xmm4
movaps [rsp+20],xmm4
movaps [rsp+30],xmm4
mov rsi,rcx
test rsi,rsi
je short M01_L03
lea rcx,[rsi+0C]
mov eax,[rsi+8]
M01_L00:
mov [rsp+20],rcx
mov [rsp+28],eax
lea rcx,[rsp+20]
call qword ptr [System.Reflection.CustomAttributeExtensions.GetCustomAttribute[[System.__Canon, System.Private.CoreLib]](System.Reflection.Assembly)]
test eax,eax
jne short M01_L05
test rsi,rsi
je short M01_L02
lea rdx,[rsi+0C]
mov ecx,[rsi+8]
M01_L01:
mov [rsp+20],rdx
mov [rsp+28],ecx
lea rdx,[rsp+20]
lea rcx,[rsp+30]
call qword ptr [System.Reflection.CustomAttributeExtensions.GetCustomAttribute[[System.__Canon, System.Private.CoreLib]](System.Reflection.Assembly)]
mov ecx,[rsi+8]
cmp ecx,[rsp+38]
je short M01_L04
lea rcx,[rsp+30]
call qword ptr [System.Reflection.CustomAttributeExtensions.GetCustomAttribute[[System.__Canon, System.Private.CoreLib]](System.Reflection.Assembly)]
mov rcx,rax
call qword ptr [System.Reflection.CustomAttributeExtensions.GetCustomAttribute[[System.__Canon, System.Private.CoreLib]](System.Reflection.Assembly)]
nop
add rsp,40
pop rsi
ret
M01_L02:
xor edx,edx
xor ecx,ecx
jmp short M01_L01
M01_L03:
xor ecx,ecx
xor eax,eax
jmp short M01_L00
M01_L04:
mov rcx,rsi
call qword ptr [System.Reflection.CustomAttributeExtensions.GetCustomAttribute[[System.__Canon, System.Private.CoreLib]](System.Reflection.Assembly)]
nop
add rsp,40
pop rsi
ret
M01_L05:
xor eax,eax
add rsp,40
pop rsi
ret
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
push rdi
push rsi
sub rsp,38
mov rdi,rcx
mov rsi,rdx
movups xmm0,[rsi]
(bad)
; Total bytes of code 192Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | bc183b8208b7a2b3310715ad2181d6a4720a159c |
| Compare | 071fe7ce868a63113143b949c3c4185f9e5578cf |
| Diff | Diff |
Regressions in System.Text.Perf_Utf8Encoding
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| GetString - Duration of single invocation | 42.20 μs | 53.04 μs | 1.26 | 0.10 | False |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.Perf_Utf8Encoding*'Payloads
Histogram
System.Text.Perf_Utf8Encoding.GetString(Input: EnglishAllAscii)
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 53.03504347826087 > 43.573991015625005.
IsChangePoint: Marked as a change because one of 8/5/2022 10:47:59 PM, 9/9/2022 3:12:19 AM, 9/13/2022 2:30:06 AM falls between 9/4/2022 8:45:57 AM and 9/13/2022 2:30:06 AM.
IsRegressionStdDev: Marked as regression because -14.136194439760997 (T) = (0 -60375.9271009913) / Math.Sqrt((511739.84831417294 / (41)) + (30211974.304730527 / (17))) is less than -2.0032407188469383 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (41) + (17) - 2, .025) and -0.45607654023901484 = (41464.80314220336 - 60375.9271009913) / 41464.80314220336 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.Perf_Utf8Encoding.GetString()
push rbp
sub rsp,30
lea rbp,[rsp+30]
xor eax,eax
mov [rbp-8],rax
mov [rbp+10],rcx
mov rcx,[rbp+10]
mov rcx,[rcx+28]
mov [rbp-8],rcx
mov rcx,[rbp-8]
mov rdx,[rbp+10]
mov rdx,[rdx+20]
mov rax,[rbp-8]
mov rax,[rax]
mov rax,[rax+68]
call qword ptr [rax+28]
nop
add rsp,30
pop rbp
ret
add [rax],al
add [rcx],bl
add eax,52050002
add [rax],edx
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax],dh
(bad)
; Total bytes of code 90
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | bc183b8208b7a2b3310715ad2181d6a4720a159c |
| Compare | 071fe7ce868a63113143b949c3c4185f9e5578cf |
| Diff | Diff |
Metadata
Metadata
Assignees
Labels
tenet-performancePerformance related issuePerformance related issuetenet-performance-benchmarksIssue from performance benchmarkIssue from performance benchmark

