Skip to content

.NET 7.0 Preview 1 Microbenchmarks Performance Study Report #65200

@adamsitnik

Description

@adamsitnik

Data

This time we have covered following configs:

  • architectures: x64, x86, arm64, arm
  • Unix: Alpine 3.13, CentOS 7, Ubuntu 18.04, Ubuntu 20.04, macOS 11.4, macOS 11.6.3
  • Windows: 10 & 11

ARM64 results are not 100% complete because we have hit two ARM bugs: #64657 (AV) and #64980 (hang).

Operating System Bit Processor Name
Windows 11 X64 AMD Ryzen Threadripper PRO 3945WX 12-Cores
Windows 11 X64 AMD Ryzen 9 5900X
Windows 10 X64 Intel Xeon CPU E5-1650 v4 3.60GHz
Windows 11 X64 Intel Core i5-4300U CPU 1.90GHz (Haswell)
Windows 10 X64 Intel Core i7-7700 CPU 3.60GHz (Kaby Lake)
Windows 11 X64 Intel Core i7-8700 CPU 3.20GHz (Coffee Lake)
Windows 11 X64 Intel Core i9-9900T CPU 2.10GHz
Windows 11 X64 Unknown processor
ubuntu 20.04 X64 AMD Ryzen 9 5900X
ubuntu 18.04 X64 Intel Xeon CPU E5-1650 v4 3.60GHz
centos 7 X64 Intel Xeon CPU E5530 2.40GHz
ubuntu 18.04 X64 Intel Core i7-2720QM CPU 2.20GHz (Sandy Bridge)
alpine 3.13 X64 Intel Core i7-7700 CPU 3.60GHz (Kaby Lake)
ubuntu 18.04 X64 Intel Core i7-7700 CPU 3.60GHz (Kaby Lake)
ubuntu 20.04 X64 Intel Core i7-7700 CPU 3.60GHz (Kaby Lake)
ubuntu 20.04 X64 Intel Core i7-8700 CPU 3.20GHz (Coffee Lake)
ubuntu 20.04 Arm64 Unknown processor
Windows 10 Arm64 Microsoft SQ1 3.0 GHz
Windows 11 Arm64 Microsoft SQ1 3.0 GHz
Windows 10 X86 Intel Xeon CPU E5-1650 v4 3.60GHz
Windows 10 Arm Microsoft SQ1 3.0 GHz
macOS Big Sur 11.6.3 X64 Intel Core i5-4278U CPU 2.60GHz (Haswell)
macOS Big Sur 11.4 X64 Intel Core i7-5557U CPU 3.10GHz (Broadwell)

Most of the benchmarks were run on bare-metal machines, some were executed via WSL.

This would not be possible without the help from: @AndyAyersMS @carlossanlop @danmoseley @jeffhandley and @janvorli who contributed their results and time.

The full report generated by the tool is available here. The full report contains also improvements, so if you read it from the end you can see the biggest perf improvements. There are plenty of them!

Again, the full historical data turned out to be extremely useful. For details about methodology please read #41871.

Regressions

By design

Investigation in progress

Fixed in the meantime

  • System.Text.Json.Tests.Perf_Ctor.Ctor(Formatted: False, SkipValidation: False)
    • was there when we started the manual runs, bot got fixed very recently
  • System.Text.Json.Tests.Perf_Base64.WriteByteArrayAsBase64_NoEscaping(NumberOfBytes: 100)
    • was there when we started the manual runs, bot got fixed recently

Noise, flaky or multimodal

The following benchmarks showed up in the report generated by the tool, but were not actual regressions:

Big thanks to everyone involved!

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Metatenet-performancePerformance related issuetrackingThis issue is tracking the completion of other related issues.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions