.NET 7 已釋出第三個預覽版

2022-04-15 09:00:45

.NET 7 Preview 3 , .NET 7 的第三個預覽版包括對可觀察性、啟動時間、程式碼生成、GC 區域、Native AOT 編譯等方面的增強。

Native AOT 編譯

Native AOT 的主要優勢在於啟動時間、記憶體使用、存取受限平臺(不允許 JIT)以及磁碟空間更小。Preview 3 版本對 Native AOT 效能進行了優化更新,以下是最新的 Native AOT 效能(與現有的 AOT 編譯 「ReadyToRun」 對比):

接下來的幾個 .NET 版本將持續改進 Native AOT 相容性,且將在 dotnet SDK 中新增一流的支援(Crossgen 應用程式),以支援使用 Native AOT 釋出專案。

可觀察性

.NET 7 繼續發展對雲原生 OpenTelemetry 規範的支援。預覽版 3 新增了對規範更新的支援 ( 和 ),使得跟蹤狀態對於取樣器可變。

 // ActivityListener Sampling callback listener.Sample = (ref ActivityCreationOptions<ActivityContext> activityOptions) => { activityOptions = activityOptions with { TraceState = "rojo=00f067aa0ba902b7" }; return ActivitySamplingResult.AllDataAndRecorded; };

改進啟動時間

效能仍然是 .NET 7 的主要關注點 重新實現了預程式碼和呼叫計數存根(使用分層編譯幫助程式存根),可顯著減少執行時中建立後再修改的可執行程式碼數量。

啟用該 Write-Xor-Execute 新功能可縮短 10-15% 啟動時間。即使沒有啟用 Write-Xor-Execute,此更改也帶來了一些微基準測試和一些 ASPNet 基準測試的穩態效能提高(高達 8%)。

迴圈優化

  •  功能將 System.Collections.Tests.Perf_BitArray.BitArrayLeftShift(Size: 512) 的單次呼叫持續時間提高了 21%:

預設啟用 GC 區域

在 Preview 3 中,除了 MacOS 和 NativeAOT 之外的所有平臺都預設啟用 GC 區域功能,該功能有助於提升高吞吐量應用程式的記憶體利用率。

有關 GC 區域功能的詳細資訊可在該 。

程式碼生成

該版本對程式碼生成和 JIT 編譯進行了多項優化和錯誤修復,比如

  •  

...

 

更多內容可在中檢視。

展開閱讀全文