.NET 6 Preview 3 發布


前言

2021/4/8 .NET 6 Preview 3 發布,這個版本的改進大多來自於底層,一起來看看都有什么新特性和改進吧。

庫改進

新增值類型作為字典值時更快的處理方法

.NET 6 Preview 3 引入了新的 unsafe API CollectionsMarshal.GetValueRef,這個 API 允許你在無數據拷貝的情況下就地更新值,並且將鍵的哈希計算從 2 次減少到 1 次。該改進在高性能場景下更新字典中存儲的 struct 非常有用。

例如:

ref MyStruct value = CollectionsMarshal.GetValueRef(dictionary, key);
// 如果不存在則返回 Unsafe.NullRef<TValue>()
if (!Unsafe.IsNullRef(ref value))
{
    // 無需拷貝,就地更新
    value.MyInt++;
}

接口檢查和轉換性能提升

接口的轉換以及檢查類型是否實現某接口的性能提升了 16~38%,該改進對模式匹配的性能提升尤其有用。

運行時

.NET 6 Preview 3 也包含更多的運行時改進

代碼生成優化

動態 PGO

在寄存器中保持值類型結構

完成 .NET 6 異常處理器寫直通

.NET 熱重載對 Web 應用初步可用

.NET 6 Preview 3 啟用了對 ASP.NET Core 和 Blazor 熱重載的初步支持,只需要通過 dotnet watch 啟動項目即可使用,不過需要修改 Properties/launchSettings.json 后才能使用熱重載:

對於 ASP.NET Core 應用,添加 "hotReloadProfile": "aspnetcore";對於 Blazor WebAssembly 應用,添加 "hotReloadProfile": "blazorwasm"

熱重載可以在不重新啟動應用程序,並且也不丟掉上下文和應用狀態的情況下直接應用代碼的更新。該功能不依賴 Visual Studio,即使你用記事本修改代碼也一樣能進行熱重載。

另外,這只是 .NET 6 熱重載第一步,后續還會為其他所有類型的 .NET 應用開發啟用熱重載支持。

結語

關於 ASP.NET Core 和 EntityFramework Core 其實還有更多的更新內容,但是這里就不一一介紹了。

以上就是 .NET 6 Preview 3 中包含的部分更新內容,感謝閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM