微軟 .NET 9 正式發(fā)布:性能大幅提升,提供 18 個月標準期限支持
11 月 13 日消息,微軟剛剛發(fā)布了最新的.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 編譯器的增強功能,旨在提高應用性能。這些編譯器增強功能包括:
- 更優(yōu)質的 Loop 代碼生成。
- 更多的本機 AOT 方法內嵌。
- 更快的類型檢查。
據介紹,其服務器 GC 已經實現了重大調整,以適應應用程序內存需求,而不是環(huán)境(機器 / 虛擬機 / 容器)中可用的資源。這一改變對核心數較高的環(huán)境產生了較大影響。
微軟指出,TechEmpower 基準測試對 .NET 9 來說是小菜一碟,它可以帶來更高的吞吐量和顯著更低的內存使用量(內存占用降低是由于服務器 GC 的變化)。
此外,.NET 9 運行時恢復了矢量化,增加了對新處理器的支持,包括 Arm64 SVE、Intel AVX10,并支持硬件加速運行時。RyuJIT 則提高了對 Arm64、循環(huán)、PGO 和邊界檢查的性能。由于采用了與 Native AOT 相同的異常模型,異常速度提高了 50%。
動態(tài)配置文件引導優(yōu)化(PGO)同步迎來更新,以優(yōu)化更多代碼模式。JIT 現在能夠為應用中的常見和不可見的類型轉換生成快速路徑代碼。它還可以展開和矢量化對緩沖區(qū)的某些操作,以適應觀察到的常見緩沖區(qū)長度。這一調整使得執(zhí)行速度提高了 70%(盡管需要禁用 ReadyToRun)。
此外,LINQ 也針對各種常見情況進行了優(yōu)化。當底層數組、集合或可枚舉為空時,Take 和 DefaultIfEmpty 等方法返回速度提高了 10 倍。
System.Text.Json 的底層細節(jié)也已得到顯著優(yōu)化,各種操作的提升幅度超過 50%。JsonObject 現可根據提供的可枚舉對象正確調整其底層支持存儲的大小,從而避免分配和調整大小的成本。