编程 .NET 10 LTS:JIT 换成图级循环识别,类库补齐 ML-KEM/ML-DSA/SLH-DSA

2026-10-05 21:03:19

.NET 10 LTS:JIT 换成图级循环识别,类库补齐 ML-KEM/ML-DSA/SLH-DSA

.NET 10 是 LTS,支持三年,到 2028-11-10。10.0.0 发布于 2025-11-11,最新 patch 为 10.0.10(2026-07-14)。下载地址见 .NET 10 下载页,官方说明见 Announcing .NET 10 与 What's new in .NET 10。

运行时:JIT、GC 与 AOT

  • 循环反转(loop inversion)不再用词法分析实现,改成基于图的自然循环识别,精度更高,对 for/while 的优化更好。
  • 方法去虚拟化(devirtualization)扩展到数组接口方法,这类方法现在可以去虚拟化并内联。
  • 栈分配范围扩大:小的值类型数组和小引用类型数组走栈分配;新增对局部 struct 字段和 delegate 的逃逸分析。
  • block reordering 建模为不对称旅行商问题的一个约简,用 3-opt 启发式求近似最优遍历,热路径密度随之提升。
  • 新增 AVX10.2(x64)内建 System.Runtime.Intrinsics.X86.Avx10v2;Arm64 侧新增 SVE。
  • Arm64 新的默认写屏障让 GC 区域处理更精确,GC 暂停改善 8% 到 20%+。
  • NativeAOT 体积更小、速度更快;类型预初始化支持所有 conv.* 与 neg opcode。

类库

后量子密码是这次类库变动最大的部分:

  • 实现 ML-KEM(FIPS 203)、ML-DSA(FIPS 204)、SLH-DSA(FIPS 205),对应新增 MLKem、MLDsa、SlhDsa 类型。
  • MLDsa、SlhDsa、CompositeMLDsa 标注 [Experimental],诊断 ID 为 SYSLIB5006,直到开发完成。
  • 支持 Windows CNG 的 PQC。
  • 新增 HashML-DSA(PreHash),SignPreHash 接受十进制 OID 字符串。
  • 新增 CompositeMLDsa,支持 ietf-lamps-pq-composite-sigs draft 8。

其余变更:

  • AES KeyWrap with Padding(RFC 5649)通过 Aes 实例方法提供。
  • JSON 序列化新增 strict 预设,遵循最佳实践,其中包括不允许重复属性;新增 PipeReader 支持以提升效率。
  • WebSocketStream 简化常见 WebSocket 场景。
  • macOS 客户端 TLS 1.3:把 Apple Network.framework 集成进 SslStream 和 HttpClient(此前 Secure Transport 不支持 TLS 1.3)。
  • Windows 进程组支持,信号隔离更好。
  • ActivitySource/Meter 构造时可指定遥测 schema URL,新增 ActivitySourceOptions;新增 Rate Limiting Sampling 采样选项。
  • 全球化/日期时间新增基于 span 的 API;System.Numerics 新增左手坐标系 billboard 矩阵。

SDK 与 EF Core

  • dotnet test 支持 Microsoft.Testing.Platform(MTP)。
  • CLI 命令顺序标准化,并生成 shell 补全脚本。
  • 控制台应用可原生创建容器镜像。
  • 新增 dnx 工具执行脚本、dotnet tool exec 一次性执行、--cli-schema。
  • EF Core 10 新增命名查询过滤器:每个实体类型可有多个过滤器,且可选择性禁用。

项目地址:https://dotnet.microsoft.com/download/dotnet/10.0

复制全文 生成海报 .NET 编程语言 版本发布

推荐文章

程序员茄子在线接单