IT之家 11 月 13 日消息,微软刚刚发布了最新的.NET 9.0 SDK 及其对应的.NET 运行时和 ASP.NET Core 运行时,该分支具有 18 个月标准期限支持。
Visual Studio 支持
- Visual Studio 2022 (v17.12)
- 包括在 Visual Studio 17.12 中
包含的运行时
- .NET 运行时 9.0.0
- ASP.NET Core 运行时 9.0.0
- .NET 桌面运行时 9.0.0
语言支持
- C# 13.0
- F# 8.0
- Visual Basic 16.9
微软表示,.NET 9 是迄今为止性能最高的 .NET 版本,对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进,并采用了更高效的算法来生成更好的代码。
IT之家从官方获悉,.NET 9 包括对 64 位 JIT 编译器的增强功能,旨在提高应用性能。这些编译器增强功能包括:
- 更优质的 Loop 代码生成。
- 更多的本机 AOT 方法内嵌。
- 更快的类型检查。
据介绍,其服务器 GC 已经实现了重大调整,以适应应用程序内存需求,而不是环境(机器 / 虚拟机 / 容器)中可用的资源。这一改变对核心数较高的环境产生了较大影响。
微软指出,TechEmpower 基准测试对 .NET 9 来说是小菜一碟,它可以带来更高的吞吐量和显著更低的内存使用量(内存占用降低是由于服务器 GC 的变化)。
此外,.NET 9 运行时恢复了矢量化,增加了对新处理器的支持,包括 Arm64 SVE、Intel AVX10,并支持硬件加速运行时。RyuJIT 则提高了对 Arm64、循环、PGO 和边界检查的性能。由于采用了与 Native AOT 相同的异常模型,异常速度提高了 50%。
动态配置文件引导优化(PGO)同步迎来更新,以优化更多代码模式。JIT 现在能够为应用中的常见和不可见的类型转换生成快速路径代码。它还可以展开和矢量化对缓冲区的某些操作,以适应观察到的常见缓冲区长度。这一调整使得执行速度提高了 70%(尽管需要禁用 ReadyToRun)。
此外,LINQ 也针对各种常见情况进行了优化。当底层数组、集合或可枚举为空时,Take 和 DefaultIfEmpty 等方法返回速度提高了 10 倍。
此外,LINQ 也针对各种常见情况进行了优化。当底层数组、集合或可枚举为空时,Take 和 DefaultIfEmpty 等方法返回速度提高了 10 倍。
以下是 .NET 9 中 AI 新增功能的要点摘要:
完备的 AI 生态系统
新的学习材料和样例
简化了与 .NET 生态系统的集成
与合作伙伴合作,构建充满活力的 AI 社区
改进了 AI 解决方案到云的部署
适用于 .NET 的 AI 构建块:Microsoft 引入了新的抽象来简化 AI,包括:
- 表示多维数据的新类型
- 简化库之间的互操作性
- 改进了应用操作
- 针对常用模型系列(GPT、Llama、Phi、Bert)的增强标记化
- 新增了对分词算法(字节级 BPE、SentencePiece、WordPiece)的支持
- 小语言模型和大语言模型(SLM 和 LLM)
- 嵌入
- 矢量存储
- 中间件
Microsoft.Extensions.AI 和 Microsoft.Extensions.VectorData:它们为与 AI 服务交互提供了统一的 C# 抽象层,包括:
- 改进了 Microsoft.ML.Tokenizers 中的分词器支持;
- Tensor 增强功能
- AI 集成合作伙伴关系:.NET 9 包括与各种 AI 合作伙伴的协作,为开发人员提供强大的产品 / 服务,包括:
- Azure
- OpenAI
- LlamaIndex
- Qdrant
- Pinecone
- Milvus
- AutoGen
- Ollamasharp
- ONNX runtime
- 智能组件生态系统:Microsoft 表示,它与社区和控制供应商合作伙伴合作,构建了一个智能组件生态系统,从而可以更轻松地将注入 AI 的控件集成到 .NET 应用程序中
- GitHub Copilot 增强功能:虽然严格来说不是 .NET 9 的一部分,但该公告强调了为 .NET 开发人员改进的 GitHub Copilot 集成,包括:
- 用于调试的 AI 智能变量检查
- AI 驱动的 IEnumerable 可视化工具
- 改进的代码修复功能
- 增强的 C# AI 补全
- 协助调试失败的测试