Details
Payloads
Baseline
Compare
Histogram
System.Text.Tests.Perf_Encoding.GetChars(size: 16, encName: "ascii")
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 25.17680674988183 < 28.21814470971666.
IsChangePoint: Marked as a change because one of 8/21/2022 7:03:28 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.
IsImprovementStdDev: Marked as improvement because 72.41512761828051 (T) = (0 -25.29701743040735) / Math.Sqrt((0.28830448292091454 / (299)) + (0.06608055800561133 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.16623856316339775 = (30.340834095646684 - 25.29701743040735) / 30.340834095646684 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetChars()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+38]
call dword ptr [eax+8]
mov esp,ebp
pop ebp
ret
add [edx+edi*2+0B49],dh
add [eax],al
test al,7A
dec ecx
or ebp,[esi+edx-74AAF4B6]
in al,dx
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
System.Text.Tests.Perf_Encoding.GetString(size: 16, encName: "utf-8")
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 26.739288992597654 < 29.15435933867865.
IsChangePoint: Marked as a change because one of 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.
IsImprovementStdDev: Marked as improvement because 71.775928968367 (T) = (0 -26.912634502955864) / Math.Sqrt((0.19897013428435656 / (299)) + (0.05759799965878534 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.145154085892344 = (31.48243918443364 - 26.912634502955864) / 31.48243918443364 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetString()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+3C]
call dword ptr [eax+14]
mov esp,ebp
pop ebp
ret
add al,dl
jns short 0AFE042C
or al,[eax]
add [eax],al
add ah,al
jns short 0AFE0434
or ah,ah
adc bh,bl
or dl,[ebp-75]
in al,dx
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
System.Text.Tests.Perf_Encoding.GetString(size: 512, encName: "ascii")
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 89.18464312363851 < 110.22428985386085.
IsChangePoint: Marked as a change because one of 8/25/2022 6:55:57 AM, 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.
IsImprovementStdDev: Marked as improvement because 102.19174704275004 (T) = (0 -88.62236918550641) / Math.Sqrt((22.966060779248956 / (299)) + (0.7088945045942359 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.28416074983304596 = (123.8020535543939 - 88.62236918550641) / 123.8020535543939 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetString()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+3C]
call dword ptr [eax+14]
mov esp,ebp
pop ebp
ret
add [eax+7A],bh
jbe short 0B79043F
add [eax],al
add [eax],al
insb
jp short BenchmarkDotNet.Autogenerated.Runnable_2+<>c.<.ctor>b__3_2()
or ebp,[esi+edx-74AAF489]
in al,dx
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
; BenchmarkDotNet.Autogenerated.Runnable_2+<>c.<.ctor>b__3_2()
push ebp
mov ebp,esp
push eax
mov [ebp-4],ecx
mov esp,ebp
pop ebp
ret
add [eax],al
add [eax],al
add ah,ch
jp short BenchmarkDotNet.Autogenerated.Runnable_2.Dummy3()
or eax,[eax]
add [eax],al
add al,ah
jp short BenchmarkDotNet.Autogenerated.Runnable_2.Dummy3()
or edx,[eax+550AD0C4]
mov ebp,esp
push eax
mov [ebp-4],ecx
; Total bytes of code 39
System.Text.Tests.Perf_Encoding.GetChars(size: 512, encName: "utf-8")
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 115.59988913412217 < 135.5317087414925.
IsChangePoint: Marked as a change because one of 8/25/2022 6:55:57 AM, 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.
IsImprovementStdDev: Marked as improvement because 105.89755800344382 (T) = (0 -114.65250569237993) / Math.Sqrt((29.69988473330213 / (299)) + (0.3856641851650302 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.24393385757101463 = (151.6434862749443 - 114.65250569237993) / 151.6434862749443 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetChars()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+38]
call dword ptr [eax+8]
mov esp,ebp
pop ebp
ret
add [edx+edi*2],cl
cmpsb
or al,[eax]
add [eax],al
add [eax],al
jp short BenchmarkDotNet.Autogenerated.Runnable_3.WorkloadActionNoUnroll(Int64)
or ah,ah
adc ch,[eax-1374AAF6]
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
; BenchmarkDotNet.Autogenerated.Runnable_3.WorkloadActionNoUnroll(Int64)
push ebp
M01_L00:
mov ebp,esp
push edi
push esi
push ebx
push eax
mov esi,ecx
xor edi,edi
xor ebx,ebx
cmp dword ptr [ebp+8],1
mov ecx,[ebp+0C]
sbb ecx,0
jl short M01_L02
M01_L01:
mov eax,[esi+34]
mov [ebp-10],eax
mov edx,[esi+30]
mov ecx,[edx+4]
call dword ptr [edx+0C]
mov edx,[ebp-10]
lea edx,[edx+20]
call CORINFO_HELP_ASSIGN_REF_EAX
add edi,1
adc ebx,0
cmp edi,[ebp+8]
mov eax,ebx
sbb eax,[ebp+0C]
jl short M01_L01
M01_L02:
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret 8
add [eax],al
add [eax],al
add ah,ah
jns short BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStart(Int64)
or al,[eax]
add [eax],al
add al,bl
jns short M01_L00
or dl,[eax]
(bad)
or dl,[ebp-75]
in al,dx
; Total bytes of code 99
System.Text.Tests.Perf_Encoding.GetString(size: 16, encName: "ascii")
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 27.482136931320575 < 30.129533277813604.
IsChangePoint: Marked as a change because one of 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.
IsImprovementStdDev: Marked as improvement because 77.84484946092802 (T) = (0 -27.455733477260218) / Math.Sqrt((0.2980543318056651 / (299)) + (0.04202557753117214 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.14309579633841915 = (32.04061009380154 - 27.455733477260218) / 32.04061009380154 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetString()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+3C]
call dword ptr [eax+14]
mov esp,ebp
pop ebp
ret
add [eax+7A],bh
popfd
or al,[eax]
add [eax],al
add [edx+edi*2-63],ch
or ch,[esi+edx-74AAF562]
in al,dx
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
System.Text.Tests.Perf_Encoding.GetChars(size: 512, encName: "ascii")
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 87.29582268688904 < 108.14741226051109.
IsChangePoint: Marked as a change because one of 8/25/2022 6:55:57 AM, 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.
IsImprovementStdDev: Marked as improvement because 98.5382902188942 (T) = (0 -87.1758384875744) / Math.Sqrt((34.75091505881639 / (299)) + (0.2934718900808057 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.2922754748750731 = (123.17764241981892 - 87.1758384875744) / 123.17764241981892 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetChars()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+38]
call dword ptr [eax+8]
mov esp,ebp
pop ebp
ret
add [edx+edi*2+0AA0],dh
add [eax],al
test al,7A
mov al,ds:[0A116AC0A]
or dl,[ebp-75]
in al,dx
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
System.Text.Tests.Perf_Encoding.GetString(size: 512, encName: "utf-8")
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 104.38782246310731 < 125.0050031144263.
IsChangePoint: Marked as a change because one of 8/25/2022 6:55:57 AM, 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.
IsImprovementStdDev: Marked as improvement because 59.709549068076065 (T) = (0 -105.78012015317145) / Math.Sqrt((22.20753880082627 / (299)) + (3.9667713713265473 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.2384260031431366 = (138.89670680687993 - 105.78012015317145) / 138.89670680687993 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; System.Text.Tests.Perf_Encoding.GetString()
push ebp
mov ebp,esp
sub esp,8
xor eax,eax
mov [ebp-8],eax
mov [ebp-4],ecx
mov ecx,[ebp-4]
mov ecx,[ecx+8]
mov [ebp-8],ecx
mov ecx,[ebp-8]
mov edx,[ebp-4]
mov edx,[edx+10]
mov eax,[ebp-8]
mov eax,[eax]
mov eax,[eax+3C]
call dword ptr [eax+14]
mov esp,ebp
pop ebp
ret
add al,dl
jns short BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
or eax,[eax]
add [eax],al
add ah,al
jns short BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
or esp,esp
adc ch,[ebx+ecx]
push ebp
mov ebp,esp
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
(bad)
; Total bytes of code 75
; BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
push ebp
mov ebp,esp
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
push dword ptr [ebp+8]
mov ecx,[ebp-4]
mov edx,6
call dword ptr [System.Diagnostics.Tracing.EventSource.WriteEvent(Int32, Int64)]
mov esp,ebp
pop ebp
ret 8
add [eax],al
add [eax],al
add [eax],al
add [eax],al
jp short BenchmarkDotNet.Engines.Engine.get_IterationCleanupAction()
or eax,[eax]
add [eax],al
add ah,dh
jns short BenchmarkDotNet.Engines.Engine.get_IterationCleanupAction()
or ebp,esp
les eax,[esi-1374AAF6]
; Total bytes of code 59
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Details
Payloads
Baseline
Compare
Histogram
PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFoo
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 469.73406249999994 < 534.8100442135989.
IsChangePoint: Marked as a change because one of 8/18/2022 3:00:51 AM, 8/20/2022 7:42:33 PM, 8/27/2022 12:34:40 AM, 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.
IsImprovementStdDev: Marked as improvement because 10.326191820469234 (T) = (0 -471311.25629758794) / Math.Sqrt((1842639315.5568614 / (299)) + (8893607.356109101 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.053614003496788736 = (498011.65490511217 - 471311.25629758794) / 498011.65490511217 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsIFoo()
push ebp
mov ebp,esp
push edi
push esi
xor esi,esi
mov edi,ds:[0A2B0634]
test edi,edi
jle short M00_L01
M00_L00:
mov edx,ds:[6844FFC]
mov ecx,offset MT_PerfLabTests.CastingPerf2.IFoo
call dword ptr [System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)]
mov edx,684504C
call CORINFO_HELP_ASSIGN_REF_EAX
inc esi
cmp esi,edi
jl short M00_L00
M00_L01:
pop esi
pop edi
pop ebp
ret
add [eax],al
add ah,al
js short BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionNoUnroll(Int64)
or al,[eax]
add [eax],al
add [eax+440A8278],bh
or al,83
or dl,[ebp-75]
in al,dx
push eax
mov [ebp-4],ecx
(bad)
; Total bytes of code 81
; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
push ebp
mov ebp,esp
push esi
test edx,edx
je short M01_L01
mov eax,[edx]
movzx esi,word ptr [eax+0E]
test esi,esi
je short M01_L04
mov eax,[eax+24]
cmp esi,4
jl short M01_L03
M01_L00:
cmp [eax],ecx
je short M01_L01
cmp [eax+4],ecx
je short M01_L01
cmp [eax+8],ecx
je short M01_L01
cmp [eax+0C],ecx
jne short M01_L02
M01_L01:
mov eax,edx
pop esi
pop ebp
ret
M01_L02:
add eax,10
add esi,0FFFFFFFC
cmp esi,4
jge short M01_L00
test esi,esi
je short M01_L04
M01_L03:
cmp [eax],ecx
je short M01_L01
add eax,4
dec esi
test esi,esi
jg short M01_L03
M01_L04:
call dword ptr ds:[6BC2D60C]
pop esi
pop ebp
ret
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
push ebp
mov ebp,esp
test edx,edx
je short M01_L05
cmp [edx],ecx
jne short M01_L06
M01_L05:
mov eax,edx
pop ebp
ret
M01_L06:
(bad)
; Total bytes of code 115
; BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionNoUnroll(Int64)
push ebp
mov ebp,esp
push edi
push esi
push ebx
mov esi,ecx
xor edi,edi
xor ebx,ebx
cmp dword ptr [ebp+8],1
mov ecx,[ebp+0C]
sbb ecx,0
jl short M02_L01
M02_L00:
mov eax,[esi+18]
mov ecx,[eax+4]
call dword ptr [eax+0C]
add edi,1
adc ebx,0
cmp edi,[ebp+8]
mov eax,ebx
sbb eax,[ebp+0C]
jl short M02_L00
M02_L01:
pop ebx
pop esi
pop edi
pop ebp
ret 8
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
add [eax],al
pushfd
; Total bytes of code 81
PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsDescendantOfIFoo
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 469.2437106092437 < 535.1052396405678.
IsChangePoint: Marked as a change because one of 8/18/2022 3:00:51 AM, 8/20/2022 7:42:33 PM, 8/27/2022 12:34:40 AM, 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.
IsImprovementStdDev: Marked as improvement because 10.143084332023776 (T) = (0 -471387.463491269) / Math.Sqrt((1811084806.5406659 / (299)) + (10825022.72435425 / (17))) is greater than 1.9675476980854363 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (17) - 2, .975) and 0.05273550024390154 = (497630.2433086448 - 471387.463491269) / 497630.2433086448 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.
```### Baseline Jit Disasm
```assembly
; PerfLabTests.CastingPerf2.CastingPerf.IFooObjIsDescendantOfIFoo()
push ebp
mov ebp,esp
push edi
push esi
xor esi,esi
mov edi,ds:[0ADE0634]
test edi,edi
jle short M00_L01
M00_L00:
mov edx,ds:[7444FFC]
mov ecx,offset MT_PerfLabTests.CastingPerf2.IFoo
call dword ptr [System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)]
mov edx,744504C
call CORINFO_HELP_ASSIGN_REF_EAX
inc esi
cmp esi,edi
jl short M00_L00
M00_L01:
pop esi
pop edi
pop ebp
ret
add [eax],al
add ah,al
js short BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
or eax,[eax]
add [eax],al
add [eax+440B3578],bh
or al,36
or edx,[ebp-75]
in al,dx
push eax
mov [ebp-4],ecx
(bad)
; Total bytes of code 81
; System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void*, System.Object)
push ebp
mov ebp,esp
push esi
test edx,edx
je short M01_L01
mov eax,[edx]
movzx esi,word ptr [eax+0E]
test esi,esi
je short M01_L04
mov eax,[eax+24]
cmp esi,4
jl short M01_L03
M01_L00:
cmp [eax],ecx
je short M01_L01
cmp [eax+4],ecx
je short M01_L01
cmp [eax+8],ecx
je short M01_L01
cmp [eax+0C],ecx
jne short M01_L02
M01_L01:
mov eax,edx
pop esi
pop ebp
ret
M01_L02:
add eax,10
add esi,0FFFFFFFC
cmp esi,4
jge short M01_L00
test esi,esi
je short M01_L04
M01_L03:
cmp [eax],ecx
je short M01_L01
add eax,4
dec esi
test esi,esi
jg short M01_L03
M01_L04:
call dword ptr ds:[6B56D60C]
pop esi
pop ebp
ret
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
push ebp
mov ebp,esp
test edx,edx
je short M01_L05
cmp [edx],ecx
jne short M01_L06
M01_L05:
mov eax,edx
pop ebp
ret
M01_L06:
(bad)
; Total bytes of code 115
; BenchmarkDotNet.Engines.EngineEventSource.WorkloadJittingStop(Int64)
push ebp
mov ebp,esp
push eax
mov [ebp-4],ecx
push dword ptr [ebp+0C]
push dword ptr [ebp+8]
mov ecx,[ebp-4]
mov edx,6
call dword ptr [System.Diagnostics.Tracing.EventSource.WriteEvent(Int32, Int64)]
mov esp,ebp
pop ebp
ret 8
add [eax],al
add [eax],al
add [eax],al
add ah,dh
js short BenchmarkDotNet.Engines.Engine.get_IterationCleanupAction()
or eax,[eax]
add [eax],al
add al,ch
js short BenchmarkDotNet.Autogenerated.Runnable_0+<>c.<.ctor>b__3_2()
or eax,[esp+eax*8-74AAF571]
in al,dx
; Total bytes of code 59
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository