您好,登錄后才能下訂單哦!
本篇內容主要講解“.NET 6 Preview 3有哪些新功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“.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 也包含更多的運行時改進
檢查 Length 后移除邊界檢查
Span 邊界檢查省略和頂層范圍檢查節點移除
添加對字節數組訪問的 loop cloning 支持
JIT: 非 void 的 ThrowHelpers
浮點數常量 CSE
為不可變靜態只讀字段啟用 CSE 和循環不變式提升優化
折疊更多的常數字符串 null 檢查
消除沒有 GC 字段的被跟蹤臨時內存的零初始化
更新返回合并和尾調用的 profile
Class profile: 為集合類 typehandle 可使用 unknown 占位符
完成值類型結構改進的第一部分: 創建更多的 LCL_FLD
改進 ‘STORE_BLK(lcl_var)’ 的生存性
JIT 中默認啟用
將單定義的異常處理器放入寄存器
7~18% 性能提升
.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 應用開發啟用熱重載支持。
到此,相信大家對“.NET 6 Preview 3有哪些新功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。