.NET 7 Preview 3添加了这些增强功能

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET 7 Preview 3添加了这些增强功能相关的知识,希望对你有一定的参考价值。

.NET 7 Preview 3 已发布, .NET 7 的第三个预览版包括对可观察性、启动时间、代码生成、GC Region、Native AOT 编译等方面的增强。

有兴趣的用户可以下载适用于 Windows、macOS 和 Linux 的 .NET 7 Preview 3。Microsoft 建议使用Visual Studio 17.2 Preview 3 的 预览频道版本来试用 .NET 7。

Native AOT 编译

简而言之,Ahead of Time(AOT)编译可以预先构建所有内容,以避免在应用程序首次运行时需要“JIT”。很长一段时间以来,.NET 团队一直在不知疲倦地工作,为dotnet带来适当的Native pre-Time编译。虽然部分AOT一直存在,但完全的“真实”支持从未开箱即用。

使用Native AOT,将预编译引入 .NET 桌面客户端和服务器方案ReadyToRun,以及适用于移动设备和 WASM 的 Mono AOT。根据.NET团队博客的说法,添加这一功能并不是为了取代现有技术,而是为了提供一组新的功能,允许用户访问新的外形规格。Native AOT 的主要优势在于启动时间、内存使用、访问受限平台(不允许 JIT)以及磁盘空间更小。Preview 3 版本对 Native AOT 性能进行了优化更新,以下是最新的 Native AOT 性能(与现有的 AOT 编译 “ReadyToRun” 对比):

接下来的几个 .NET 版本将持续改进 Native AOT 兼容性,且将在 dotnet SDK 中添加一流的支持(Crossgen 应用程序),以支持使用 Native AOT 发布项目。有关原生AOT如何工作以及如何开始的更多信息,请查看官方文档。

可观察性

此预览版还添加了对新的云原生 OpenTelemetry 规范的支持。这包括规范更新 #988 和 #1708,它们使采样器的跟踪状态可变。

  • 允许跟踪采样器修改活动跟踪状态

//  ActivityListener Sampling callback
    listener.Sample = (ref ActivityCreationOptions<ActivityContext> activityOptions) =>
            activityOptions = activityOptions with  TraceState = "rojo=00f067aa0ba902b7" ;        return ActivitySamplingResult.AllDataAndRecorded;    ;


System.Composition.Hosting

有了这个,最新的托管扩展性框架也进行了小的更新,以便与以前版本的API保持一致。使用新的 API,可以将单个对象实例添加到 System.Composition.Hosting 容器中。

启用“Write-Xor-Execute”缩短了启动时间

性能仍然是 .NET 7 的主要关注点。dotnet/runtime#65738 PR ,重新实现了预代码和调用计数存根(使用分层编译帮助程序存根),可显著减少运行时中创建后再修改的可执行代码数量。

启用该 Write-Xor-Execute 新功能可缩短 10-15% 启动时间。即使没有启用 Write-Xor-Execute,此更改也带来了一些微基准测试和一些 ASPNet 基准测试的稳态性能提高(高达 8%)。

默认启用 GC Regions

在 Preview 3 中,除了 MacOS 和 NativeAOT 之外的所有平台都默认启用 GC Regions功能,该功能有助于提升高吞吐量应用程序的内存利用率。

有关 GC Regions 功能的详细信息可在该 Issue 中查看。

从 .NET 6 升级

正如我们之前所讨论的,从.NET 6升级到7应该很简单,并且升级失败的可能性很小,但并非不可能。

  • 前往官方下载站点并下载 .NET SDK。

  • 为了安全起见,还可以在此处查看重大更改列表。

在继续之前,请确保已备份项目,然后打开项目文件并修改目标框架属性。

<TargetFramework>net7.0</TargetFramework>

在很大程度上,Microsoft 将 .NET 7 Preview 3 中包含的大量优化和错误修复归功于社区贡献者。其中包括对代码生成和实时编译所做的修复。

有关此预览版的详细信息,请参阅.NET团队官方博客文章。它还包含有关路线图项目的一些非常有趣的信息。

以上是关于.NET 7 Preview 3添加了这些增强功能的主要内容,如果未能解决你的问题,请参考以下文章

.NET 6 Preview 4 已发布,这些新功能值得关注!

.NET 6 全新指标 System.Diagnostics.Metrics 介绍

.NET 6 全新指标 System.Diagnostics.Metrics 介绍

译宣告推出.NET Core 3.0 Preview 7(英雄的黎明)

称钉钉将上线“下班勿扰”功能;苹果发生大规模网络宕机;.NET 7 Preview 2发布|极客头条

.NET 6 Preview 7:通用数学的运行时错误