共计 2632 个字符,预计需要花费 7 分钟才能阅读完成。
本文由葡萄城技术团队翻译并首发
转载请注明出处:葡萄城官网,葡萄城为开发者提供业余的开发工具、解决方案和服务,赋能开发者。
咱们很快乐公布.NET6 预览的第 6 版,本次预览是倒数第二次预览了。在本次预览公布之后到最初一次预览之前,咱们会进入 RC 期,将会有两个 RCs。这个版本自身绝对内容较少,而 Preview7 的内容会更多。在所有预览公布完结后,咱们将继续对问题进行修复,直到 11 月公布最终版本。请大家一起期待.NET 的新版本。
.NET 6 Preview 6 下载地址,依据各位的须要下载 Linux, ,macOS, and Windows 不同版本。
- 安装程序和二进制文件
- Linux packages
- 发行阐明
- API 差别
- 已知问题
- GitHub 问题跟踪器
请参阅 ASP.NET Core、EF Core 和.NET MAUI 文章,以理解无关 web、数据拜访和客户端场景的新性能的更多详细信息。
从.NET 6 Preview 6 开始,咱们曾经测试并反对 Visual Studio 2022 Preview 2。Visual Studio 2022 能够应用专门为.NET 6 开发的 Visual Studio 工具,如.NET MAUI 中的开发、C 应用程序的热从新加载、WebForms 的新 Web Live 预览,以及 IDE 体验中的其余性能改良。.net6 也曾经用 visualstudioformac8.9 进行了测试。
查看.NET 新个性探讨。
x64 仿真更新
咱们曾经实现了增加对 Apple Silicon for macOS 和 Arm64 for Windows 的反对。剩下的就是反对 macOS、Apple Silicon 和 Windows Arm64 上的 x64 仿真。
须要做以下两点实现:
- 装置并行
- 应用.NET CLI 实现一流体系结构指标,以便在所有场景中启用本机体系结构 SDK。
然而目前不不便的一点是,在并行安装程序可用之前(在之后的.NET6 中),您须要装置所有 x64 版本或所有 Arm64 版本。如果要进行切换,须要卸载 / 删除 Arm64 计算机上的所有.NET 版本。
工具:.NET SDK 可选工作负载的改良
咱们增加了三个新的工作负载命令,以实现更好的发现和治理。
l dotnet workload search- 列出可装置的工作负载
l dotnet 工作负载卸载 - 如果不再须要工作负载,请删除指定的工作负载。也是节俭空间的好抉择
l dotnet 工作负载修复 - 重新安装以前装置的所有工作负载
如果因为网络连接不好导致装置失败,就能够解决这个问题。
可选工作负载由多个工作负载包组成,所以会呈现局部负载包装置胜利,局部装置失败。
在以前的预览中,咱们增加了以下命令:
- dotnet workload install- 装置工作负载
- dotnet workload list- 列出已装置的工作负载
- dotnet workload update- 更新已装置的工作负载
库:对 System.DirectoryServices.Protocols 的 TLS 反对
已为 Linux 和 macOS 的 System.DirectoryServices.Protocols 启用 TLS 反对。它曾经为 Windows 启用。NET 用户当初能够享受与 LDAP 服务器的平安通信。
归功于 @iinuwa。
工具:Crossgen2 取代 crossgen
已为所有现有的 crossgen 计划启用了 Crossgen2。在这个里程碑中,咱们还从 SDK 中删除了(旧的)crossgen,旧 crossgem 不可再拜访,无奈应用。
Crossgen(1 和 2)反对将 IL 预编译为本机代码作为公布步骤。预编译对启动的改良有很大帮忙。Crossgen2 是一个从头开始的实现,曾经被证实是代码生成翻新的高级平台。例如,crossgen2 能够为比 crossgen1 更宽泛的 IL 模式集生成代码。
以下 MSBuild 属性演示如何应用 crossgen2 启用预编译。
库:Sync-over-async 的性能改良
Sync-over-async 是阻塞工作的一种常见类型。当线程池工作线程产生时,它会导致饥饿。线程注入的速度过慢可能会提早其余排队工作的运行,并且可能会提早饥饿问题的解决。
当 Sync-over-async 是线程池工作线程上产生的惟一一种阻塞线程时,此更改在默认状况下进步了线程注入速率。有一些新的 AppContext 配置值可用于配置线程注入速率,以响应 Sync-over-async。
Runtime: W^x 内存策略
咱们反对对 W^ x 内存保护。这是 Apple Silicon 的一项要求,也是其余操作系统的一项重要的安全措施。
此个性具备异样名称,它应该被读为“写独占执行”。这意味着内存页能够被标记为读 / 写或读 / 执行,但不能是任何包含写和执行的组合。例如,写 / 执行页会受到缓冲区溢出攻打的影响。
此个性要求在整个产品进行变更,无论应用的是写 / 执行页。例如,preview 6 的一个变动是它要求 JIT 与咱们采纳的 W^X 计划合作。
W^x 是苹果硅片机上 macOS 的一个要求,在.NET 6 的所有其余环境中都是可选的,并且在.NET 7 的所有环境中都可能是默认模式。
留神:W^x 实现在除 Apple Silicon 以外的所有环境中都具备与.net6 的启动回归,它将作为.NET7 的一部分解决。因为操作系统反对此场景,Apple Silicon 实现没有这种回归。
CodeGen 更新日志
在 Preview 6 中蕴含以下代码更改:
动静 PGO
- 增加选项以抉择爱护的 DEVITET 类随机抉择
https://github.com/dotnet/run… - PGO/DEVILT 诊断改良
https://github.com/dotnet/run…
LSRA
- 重构 LSRA 启发抉择
https://github.com/dotnet/run…
- DEBUG 模式蕴含一个 COMPlus 变量,LsraOrdering 将容许用户设置启发式排序
- 调整寄存器的启发式算法,以抉择要溢出的最佳寄存器候选
https://github.com/dotnet/run…
改良基于这些内容更改:
更多改良:
- Windows x86
- Windows x64
- 通用改良
代码品质
打消冗余的“测试”指令
https://github.com/dotnet/run…
总结
这次公布很快就要完结了,大家能够尽快尝试一下这次 Preview6 中提到的内容改变。
感激所有为.NET6 公布做出奉献的人。后续,葡萄城还会持续为大家带来更多.net6 更新的相干内容分享。