根据 Microsoft 的基准测试,即将推出的 Microsoft .NET 的下一个主要版本 .NET 6 显着提高了许多操作的性能。
.NET 合作伙伴软件工程师Stephen Toub 在 Dotnet 开发人员博客上发表的一篇新文章提供了有关基准测试和与 .NET 以前版本相比的性能改进的见解。
根据这篇文章,大约有 6500 个合并的拉取请求登陆 .NET 6,不包括机器人的自动拉取请求。据微软称,其中大约 550 个可以提高一个或另一个领域的性能。
该职位本质上是技术性的;它包含大量代码、示例和说明,用于运行基准测试以验证结果。BenchmarkDotNet 用于大多数结果。
例如,以下是 Just In Time 基准测试的基准测试结果。大多数测试将 .NET 6.0 的性能与 .NET 5.0 的性能进行比较,但您会发现某些测试中也使用了其他 .NET 版本。
方法 |
运行 |
意思 |
比率 |
代码大小 |
格式 |
.NET 5.0 |
13.21 纳秒 |
1.00 |
1,649 乙 |
格式 |
.NET 6.0 |
10.37 纳秒 |
0.78 |
590 乙 |
方法 |
运行 |
意思 |
比率 |
代码大小 |
寻找 |
.NET 框架 4.8 |
115.4我们 |
1.00 |
127 乙 |
寻找 |
.NET 核心 3.1 |
69.7 美元 |
0.60 |
71 乙 |
寻找 |
.NET 5.0 |
69.8 美元 |
0.60 |
63 乙 |
寻找 |
.NET 6.0 |
53.4我们 |
0.46 |
57 乙 |
方法 |
运行 |
意思 |
比率 |
代码大小 |
已分配 |
获取长度 |
.NET 框架 4.8 |
6.3495 纳秒 |
1.000 |
106 乙 |
32 乙 |
获取长度 |
.NET 核心 3.1 |
4.0185 纳秒 |
0.628 |
66 乙 |
—— |
获取长度 |
.NET 5.0 |
0.1223 纳秒 |
0.019 |
27 乙 |
—— |
获取长度 |
.NET 6.0 |
0.0204 纳秒 |
0.003 |
27 乙 |
—— |
方法 |
意思 |
代码大小 |
PGO 禁用 |
1.905 纳秒 |
30 乙 |
启用 PGO |
0.7071 纳秒 |
105 乙 |
方法 |
运行 |
意思 |
比率 |
代码大小 |
和 |
.NET 5.0 |
471.3我们 |
|
54 乙 |
和 |
.NET 6.0 |
|
|
97 乙 |
方法 |
运行 |
意思 |
比率 |
代码大小 |
获取高度 |
.NET 5.0 |
151.7852 纳秒 |
1.000 |
179 乙 |
获取高度 |
.NET 6.0 |
0.0000 纳秒 |
0.000 |
12 乙 |
方法 |
运行 |
意思 |
比率 |
代码大小 |
格式 |
.NET 5.0 |
87.71 纳秒 |
1.000 |
154 乙 |
获取高度 |
.NET 6.0 |
51.88 纳秒 |
0.59 |
100 乙 |
您可以在 Dot Net Dev Blog 上查看完整的博客文章,了解所有测试、代码示例的完整纲要,并解释为什么特定基准测试的性能有所提高。
对 .NET 感兴趣的开发人员可以在撰写本文时从 Microsoft 的开发人员网站下载最新的预览版本 .NET 6.0 Preview 7。它适用于 Windows(ARM、x64、x32)、Linux(Arm32、Arm64、x64)和 Mac OS X(Arm64、x64)。仅提供适用于 Linux 的二进制文件、适用于 Windows 和 Mac OS 的安装程序和二进制文件。