APP下载

效能大提升!微软正式推出.NET 6

消息来源:baojiabao.com 作者: 发布时间:2024-11-25

报价宝综合消息效能大提升!微软正式推出.NET 6

经过一年多的开发,微软正式释出.NET最新长期支援版本.NET 6,这个版本的更新重点,除了C#和F#都有许多语言功能改进之外,.NET 6终于集大成,成为跨浏览器、云端、桌面、物联网和行动应用程序的统一平台,效能也获得大幅提升,并且更完整支援Arm64。

微软更新.NET 6的底层平台,使其能够满足所有类型的应用程序需求,让开发者可以在所有应用程序中,重复使用程式码,因此新功能和更新,可以同时使用在所有应用程序,云端和行动装置中执行的程式码,都能具有相同的行为,也就是说,所有平台的应用程序,都可以使用相同的.NET函式库,并且简单地共享程式码。

.NET 6也赋予开发人员更多的功能,这个版本新增支援机器学习和WebAssembly,开发人员可以开发具有机器学习功能的应用程序,用于像是搜寻串流资料中的异常情况等使用案例。而WebAssembly的部分,则让开发者可以在浏览器中运作.NET应用程序,就像是HTML和JavaScript一样,或者将.NET和HTML、JavaScript程式码混合使用。

.NET 6还有一个主打的新功能,便是.NET多平台应用程序UI(Multi-platform App UI,MAUI),开发者现在可以在单一专案中编写程式码,并直接提供跨桌面和行动装置的客户端应用程序,实现写一次到处执行的理想,不过该项功能会比.NET 6还要晚一点发布。

微软也花了许多心力在改善.NET 6效能中,重大的改进包括PGO、档案IO和界面转换(Interface Casting)。微软提到,动态PGO(Dynamic Profile-guided Optimization)能够明显提高稳态(Steady State)效能,以TechEmpower JSON MVC套件来说,每秒钟的请求数能够从510K提高到640K,增加26%。

动态PGO建立在分层编译上,.NET 6会先以非常快速的方式,编译一次应用程序,来提高启动效能,这称为第0层编译,接着再运用大量最佳化重新编译应用程序,经过最佳化的编译称为第1层编译,微软解释,这项模型已经被证实具有提高应用程序效能的方法,该模型透过在第0层的时候,对程式码执行进行各种观察,并将从第0层收集到的资讯,用来最佳化第1层程式码。

动态PGO技术会带来明显的效能差异,但是同时也增加了不少程式码容量,不过增加的是JIT所产生的组合程式码,而非占用较大的内存。

微软几乎全部重写.NET 6中处理档案的FileStream,重点是提高异步档案IO的效能,在Windows上实现非阻塞API,效率能够快上不少,而且微软也改进了所有平台内存的使用,当Windows和Unix实作方法不同时,也尽可能让极端情况行为一致。微软提到,所有操作系统都能获得重写FileStream所带来的效能提升,除了macOS和Linux开发者能够看到明显不同之外,原本效能远远落后的Windows,更是获得大幅改善。

另外,.NET 6在界面的检查和转换上也更快速了,效能大概提高16%到38%,这种改进对于C#的模式配对会特别有感。

微软和Arm、Apple的工程师合作,在.NET 6还扩大了对Arm64的支援,这版的主要重点是在macOS和Windows Arm64操作系统上,支援最新的Apple Silicon芯片以及x64模拟使用情境,开发者可以在macOS 11+和Windows 11+的Arm64操作系统上,安装Arm64和x64版本的.NET,微软建议开发者,还是使用与原生架构相符的SDK,确保最佳的效能。

2021-11-10 09:46:00

相关文章