KEMBAR78
[Perf] Windows/x64: 6 Improvements on 2/19/2023 10:06:54 AM · Issue #13170 · dotnet/perf-autofiling-issues · GitHub
Skip to content

[Perf] Windows/x64: 6 Improvements on 2/19/2023 10:06:54 AM #13170

@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline edce5ea1600bf4c61f10bc9de80e4a11ff14c842
Compare 7908e8ef62c7d5ebdcd6459faccd755b9b10d369
Diff Diff

Improvements in System.Net.NetworkInformation.Tests.PhysicalAddressTests

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
PALong - Duration of single invocation 152.64 ns 132.08 ns 0.87 0.00 False 1352.4511059392967 1215.1915293868278 0.898510507367185) Trace Trace

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Net.NetworkInformation.Tests.PhysicalAddressTests*'

Payloads

Baseline
Compare

Histogram

System.Net.NetworkInformation.Tests.PhysicalAddressTests.PALong


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 132.0795000867905 < 144.6528985919467.
IsChangePoint: Marked as a change because one of 12/8/2022 9:11:55 AM, 1/11/2023 2:37:52 AM, 2/19/2023 8:14:07 AM, 2/21/2023 5:46:41 AM falls between 2/12/2023 2:35:10 PM and 2/21/2023 5:46:41 AM.
IsImprovementStdDev: Marked as improvement because 31.51019716202524 (T) = (0 -132.51766237590437) / Math.Sqrt((3.2164955671694067 / (299)) + (4.755084042775673 / (10))) is greater than 1.9677212881555053 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (10) - 2, .975) and 0.14222828960283065 = (154.4905955391621 - 132.51766237590437) / 154.4905955391621 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Net.NetworkInformation.Tests.PhysicalAddressTests.PALong()
       sub       rsp,28
       mov       rcx,[rcx+10]
       mov       rax,[rcx]
       mov       rax,[rax+40]
       call      qword ptr [rax+8]
       nop
       add       rsp,28
       ret
; Total bytes of code 24

Compare Jit Disasm

; System.Net.NetworkInformation.Tests.PhysicalAddressTests.PALong()
       sub       rsp,28
       mov       rcx,[rcx+10]
       mov       rax,[rcx]
       mov       rax,[rax+40]
       call      qword ptr [rax+8]
       nop
       add       rsp,28
       ret
; Total bytes of code 24

Docs

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

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline edce5ea1600bf4c61f10bc9de80e4a11ff14c842
Compare 7908e8ef62c7d5ebdcd6459faccd755b9b10d369
Diff Diff

Improvements in System.Perf_Convert

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
ToHexString - Duration of single invocation 51.80 ns 45.27 ns 0.87 0.04 False 453.1672049082348 421.9440771222215 0.9311002044105643) Trace Trace

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

Payloads

Baseline
Compare

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Perf_Convert*'

Payloads

Baseline
Compare

Histogram

System.Perf_Convert.ToHexString


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 45.268412020603904 < 49.11453128396782.
IsChangePoint: Marked as a change because one of 12/8/2022 9:11:55 AM, 1/11/2023 2:37:52 AM, 2/19/2023 8:14:07 AM, 2/21/2023 5:46:41 AM falls between 2/12/2023 2:35:10 PM and 2/21/2023 5:46:41 AM.
IsImprovementStdDev: Marked as improvement because 23.8007879390308 (T) = (0 -46.38862200847876) / Math.Sqrt((3.0290609186149933 / (299)) + (0.6416452006605924 / (10))) is greater than 1.9677212881555053 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (10) - 2, .975) and 0.12269099963197333 = (52.87603568300219 - 46.38862200847876) / 52.87603568300219 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Perf_Convert.ToHexString()
       mov       rcx,[rcx+18]
       jmp       qword ptr [7FFE4DFEB7B0]; System.Convert.ToHexString(Byte[])
; Total bytes of code 10
; System.Convert.ToHexString(Byte[])
       sub       rsp,38
       xor       eax,eax
       mov       [rsp+28],rax
       test      rcx,rcx
       je        short M01_L00
       lea       rax,[rcx+10]
       mov       ecx,[rcx+8]
       mov       [rsp+28],rax
       mov       [rsp+30],ecx
       lea       rcx,[rsp+28]
       call      qword ptr [7FFE4DFEB7E0]; System.Convert.ToHexString(System.ReadOnlySpan`1<Byte>)
       nop
       add       rsp,38
       ret
M01_L00:
       mov       ecx,1C6B
       mov       rdx,7FFE4DC04000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       call      qword ptr [7FFE4DEF5BA0]
       int       3
; Total bytes of code 79

Compare Jit Disasm

; System.Perf_Convert.ToHexString()
       mov       rcx,[rcx+18]
       jmp       qword ptr [7FFC3944B7B0]; System.Convert.ToHexString(Byte[])
; Total bytes of code 10
; System.Convert.ToHexString(Byte[])
       sub       rsp,38
       xor       eax,eax
       mov       [rsp+28],rax
       test      rcx,rcx
       je        short M01_L00
       lea       rax,[rcx+10]
       mov       ecx,[rcx+8]
       mov       [rsp+28],rax
       mov       [rsp+30],ecx
       lea       rcx,[rsp+28]
       call      qword ptr [7FFC3944B7E0]; System.Convert.ToHexString(System.ReadOnlySpan`1<Byte>)
       nop
       add       rsp,38
       ret
M01_L00:
       mov       ecx,1C7F
       mov       rdx,7FFC39064000
       call      CORINFO_HELP_STRCNS
       mov       rcx,rax
       call      qword ptr [7FFC39357420]
       int       3
; Total bytes of code 79

Docs

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions