微软发布 .NET 8 开源开发平台:引入 PGO、AVX-512 支持,性能提升 20%

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
可观测监控 Prometheus 版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 对企业来说特别重要的是,.NET 8 是一个长期支持 (LTS) 版本,这意味着它将获得三年的支持和补丁,而标准期限支持 (STS) 版本则是 18 个月。对于开发人员来说,特别重要的是 .NET 团队正在向期待已久的原生提前编译(NativeAOT)迈进 。

.NET8 GA 开源发布

微软在 2023年11月14日 举行了 “.NET Conf 2023” 开发者大会,并推出了最新一代 .NET8 开源开发平台。

.net8

.NET8 新特性和性能改进

对企业来说特别重要的是,.NET8 是一个长期支持 (LTS) 版本,这意味着它将获得三年的支持和补丁,而标准期限支持 (STS) 版本则是 18 个月。对于开发人员来说,特别重要的是 .NET 团队正在向期待已久的原生提前编译(NativeAOT)迈进 。

据介绍,.NET8 不仅包含许多性能改进,还增加了一个新的代码生成器 —— 动态配置文件引导优化(PGO),它可以根据应用优化代码。微软表示这将使基于 .NET8 的应用性能提升至高 20%

此外,新增的 AVX-512 指令集支持也可以对 512 位数据向量进行并行运算,在 .NET8 中受支持和使用,从而允许在更短的时间内进行更多的数据处理。

微软还表示,基元类型现在实现了新的格式化和可解析接口,使它们能够直接格式化和解析为 UTF-8,而不会产生任何转码开销。

  • .NET8 带来了数千种性能改进,涵盖了整个堆栈。默认情况下会启用一个新的代码生成器,称为动态配置文件引导优化(PGO),它会根据实际使用情况优化您的代码,从而为应用程序提高多达 20% 性能。
  • 现在支持的 AVX-512 指令集使您能够在 512 位数据向量上执行并行操作,这意味着您可以在更短的时间内处理更多的数据。基本类型(数值和更多)现在实现了一个新的可格式化和可解析接口,使其能够直接以 UTF-8 格式进行格式化和解析,而无需任何转码开销。

.NET8 性能的 TechEmpower 基准测试

微软表示,TechEmpower 基准测试显示,在 JSON API 场景中,.NET8 的性能比 .NET7 提高了 18%,而在 Fortunes 场景中,.NET8 的性能比 .NET7 提高了 24%

TechEmpower性能基准测试

.NET8 love AI

微软还在努力推动将 .NET8 用于基于 AI 的应用程序。

集成 Tensor 基元。随着启用 AI 的应用程序的兴起,出现了新的工具和 SDK。我们与许多内部和外部合作伙伴(如 Azure OpenAI、Azure Cognitive Search、Milvus、QdrantMicrosoft Teams)合作,确保 .NET 开发人员通过各自的 SDK 轻松访问各种 AI 模型、服务和平台。

此外,开源的语义内核 SDK 简化了将这些 AI 组件集成到新应用程序和现有应用程序中的过程,帮助您提供创新的用户体验。

.NET8 & NativeAOT

.NET8 通过推进 NativeAOT 来增强可持续计算,以减少内存使用并实现即时应用程序启动。微软今天强调了 AOT 的功能,包括:

  • 它将应用程序编译为使用更少内存的本机代码并立即启动;
  • 无需等待 JIT(实时)编译器在运行时编译代码;
  • 无需部署 JIT 编译器和 IL 代码;
  • AOT 应用仅部署应用所需的代码;
  • 现在,应用程序可以在不允许使用 JIT 编译器的受限环境中运行;

.net-native

.net8

对于在 .NET8 上开发并在 LinuxWindows 平台上运行的 AOT(提前编译)应用也将得到性能提升,这意味着开发人员不必使用 JIT(即时编译)编译器来在运行时编译他们的应用程序。

.NET8 Aspire & 云原生

除了 .NET8 之外,微软还发布了 .NET Aspire 首个版本(目前还处于预览版)。这是一个专门为制作基于云的应用程序而设计的堆栈,或者说是一个用于构建弹性、可观察和可配置的云原生应用程序的堆栈。

.NET Aspire 附带了一组针对云原生开发增强的精选组件,默认情况下包括遥测、复原、配置和运行状况检查等等。

.NET Aspire

在云原生的容器方面,.NET8 通过简化应用程序的打包和使用默认的非 root 用户配置增强安全性来简化容器化。它还提供更小的映像大小以加快部署速度,并提供可选的 Dirstroless Ubuntu 映像以增强安全性,以及多功能架构支持。

微软还表示,它使用简单易用的本地开发人员体验,同时也足够复杂以创建基于云的应用程序。

.net-ai

.net-full-stack

C#12 (.NET8 的标配)

此外,借助 C#12,你现在可以用简单而优雅的语法在任何类和结构中创建主要构造函数,不再需要样板代码来初始化字段和属性。使用简洁而富有表现力的语法创建数组、spans 和其他集合类型。对 lambda 表达式中的参数使用新的默认值。不再需要重载或 null 检查来处理可选参数。您甚至可以使用 using alias 指令为任何类型设置别名,而不仅仅是命名类型!

.net-using-alias

C# 12 中的新增功能指南 解释了版本 12 中的以下新功能:

  • 主构造函数 - 在 Visual Studio 17.6 预览版 2 中引入。
  • Lambda 表达式中的可选参数 - 在 Visual Studio 17.5 预览版 2 中引入。
  • 任何类型的别名 - 在 Visual Studio 17.6 预览版 3 中引入。
  • 内联数组 - 在 Visual Studio 17.7 预览版 3 中引入。
  • 集合表达式 - 在 Visual Studio 17.7 预览版 5 中引入。
  • 拦截器 - 预览功能在 Visual Studio 17.7 预览版 3 中引入。

开发人员可以在这篇博客文章中了解有关 .NET Aspire 的更多信息,并且可以在 GitHub 上提交有关此预览版本的反馈。

官方文档:

转载声明:

目录
相关文章
|
1月前
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
57 26
|
2月前
|
区块链 C# Windows
PasteEx:一款.NET开源的Windows快捷粘贴神器
PasteEx:一款.NET开源的Windows快捷粘贴神器
57 17
|
2月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
65 13
|
2月前
|
XML C# 数据格式
一个.NET开源、免费、功能强大的 PDF 处理工具
一个.NET开源、免费、功能强大的 PDF 处理工具
|
2月前
|
开发框架 JavaScript 前端开发
精选2款.NET开源的博客系统
精选2款.NET开源的博客系统
|
2月前
|
网络协议 C#
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
61 10
|
2月前
|
C# UED
一个.NET开源、易于使用的屏幕录制工具
一个.NET开源、易于使用的屏幕录制工具
|
2月前
|
Web App开发 C# Windows
一款.NET开源的Windows资源管理器标签页工具
一款.NET开源的Windows资源管理器标签页工具
|
2月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
155 13
|
3月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
57 5