首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

.NET 11 运行时的新增功能

摘要

This article describes new features in the .NET runtime for .NET 11. It was last updated for release candidate 2 (RC 2). Updated minimum hardware requirements The minimum hardware requirements for .NE...

the armv8 and updated hardware for minimum Apple LSE requirements
2026-11-11 1 阅读 约7分钟阅读 stevefan1999
分享:
字号:
本文介绍 .NET 11 的 .NET 运行时中的新功能。它的最新更新是针对候选版本 2 (RC 2)。更新了最低硬件要求 .NET 11 的最低硬件要求已更新,要求 x86/x64 和 Arm64 架构上有更现代的指令集。此外,ReadyToRun (R2R) 编译目标已更新,以利用更新的硬件功能。 Arm64 要求 对于 Apple 来说,最低硬件或 ReadyToRun 目标没有变化。 Apple M1 芯片大约相当于 armv8.5-a,并至少提供对 AdvSimd (NEON)、CRC、DOTPROD、LSE、RCPC、RCPC2 和 RDMA 指令集的支持。对于 Linux,最低硬件没有变化。 .NET 继续支持 Raspberry Pi 等设备,这些设备可能只提供对 AdvSimd 指令集的支持。 ReadyToRun 目标已更新为包含 LSE 指令集,如果您启动应用程序,这可能会导致额外的抖动开销。对于 Windows,基线已更新为需要 LSE 指令集。这是 Windows 11 以及 Windows 10 官方支持的所有 Arm64 CPU 所必需的。此外,它还符合 Arm SBSA(服务器基础系统架构)要求。 ReadyToRun 目标已更新为 armv8.2-a + RCPC ,至少提供对 AdvSimd 、 CRC 、 LSE 、 RCPC 和 RDMA 的支持,并涵盖了官方支持的大部分硬件。操作系统 以前的 JIT/AOT 最小值 新的 JIT/AOT 最小值 以前的 R2R 目标 新的 R2R 目标 Apple Apple M1(无变化) Apple M1(无变化) Linux armv8.0-a(无变化)armv8.0-a armv8.0-a + LSE Windows armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC x86/x64 要求 对于所有三种操作系统(Apple、Linux 和 Windows),基线从 x86-64-v1 更新到 x86-64-v2 。这将硬件从仅保证 CMOV、CX8、SSE 和 SSE2 更改为还保证 CX16、POPCNT、SSE3、SSSE3、SSE4.1 和 SSE4.2。 Windows 11 和 Windows 10 官方支持的所有 x86/x64 CPU 都需要此保证。它包括仍然受 Intel 和 AMD 官方支持的所有芯片,最后一批旧芯片已在 2013 年左右停止支持。ReadyToRun 目标已更新为适用于 Windows 和 Linux 的 x86-64-v3,其中还包括 AVX 、 AVX2 、 BMI1 、 BMI2 、 F16C 、 FMA 、 LZCNT 和 MOVBE 指令集。 Apple 的 ReadyToRun 目标保持不变。操作系统 以前的 JIT/AOT 最低值 新的 JIT/AOT 最低值 以前的 R2R 目标 新的 R2R 目标 Apple x86-64-v1 x86-64-v2 x86-64-v2(无变化) Linux x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3 Windows x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3 影响 从 .NET 11 开始,.NET 无法在较旧的硬件上运行,并且可能会打印类似于以下内容的消息:当前 CPU 缺少一个或多个基准指令集。对于支持 ReadyToRun 的程序集,某些受支持的硬件可能会产生额外的启动开销,而这些硬件不符合典型设备的预期支持。更改原因 .NET 支持广泛的硬件,通常超出底层操作系统规定的最低硬件要求。这种支持显着增加了代码库的复杂性,特别是对于不太可能仍在使用的旧硬件而言。此外,它还定义了 AOT 目标必须默认的“最低公分母”,这在某些情况下可能会导致性能下降。对最小基线的更新是为了降低代码库的维护复杂性,并更好地符合底层操作系统记录的(通常是强制执行的)硬件要求。有关详细信息,请参阅更新的最低硬件要求。运行时异步 .NET 11 引入了运行时本机异步(运行时异步 V2),这是用运行时管理的挂起和恢复取代编译器生成的异步状态机的重要一步。运行时本身跟踪异步执行,而不是由编译器发出状态机类,从而产生更清晰的堆栈跟踪、更好的可调试性和更低的开销。运行时异步是一项预览功能。要选择加入,请将以下属性添加到您的项目文件中: runtime-async=on net11.0 项目不再需要 true 来使用运行时异步。 .NET 运行时库本身是使用 runtime-async=on 进行编译的。运行时库不再包含编译器生成的状态机,并完全依赖运行时提供的异步。这使得将整个应用程序(仅具有库依赖项)迁移到新模型成为可能,并且它提供了该功能的广泛功能和性能验证。产品团队欢迎您观察到的有关吞吐量和库大小变化的任何正面或负面报告。 .NET 11 还包括两项额外的改进:协变任务 → 任务<
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱