<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .NET 6 Preview 3 終于發(fā)布了!

          共 1859字,需瀏覽 4分鐘

           ·

          2021-04-11 23:45

          前言

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

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

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

          例如:

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

          2. 接口檢查和轉(zhuǎn)換性能提升

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

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

          3.代碼生成優(yōu)化

          • 檢查 Length 后移除邊界檢查
          • Span 邊界檢查省略和頂層范圍檢查節(jié)點移除
          • 添加對字節(jié)數(shù)組訪問的 loop cloning 支持
          • JIT: 非 void 的 ThrowHelpers
          • 浮點數(shù)常量 CSE
          • 為不可變靜態(tài)只讀字段啟用 CSE 和循環(huán)不變式提升優(yōu)化
          • 折疊更多的常數(shù)字符串 null 檢查
          • 消除沒有 GC 字段的被跟蹤臨時內(nèi)存的零初始化

          4. 動態(tài) PGO

          • 更新返回合并和尾調(diào)用的 profile
          • Class profile: 為集合類 typehandle 可使用 unknown 占位符

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

          • 完成值類型結構改進的第一部分: 創(chuàng)建更多的 LCL_FLD
          • 改進 ‘STORE_BLK(lcl_var)’ 的生存性

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

          • JIT 中默認啟用
          • 將單定義的異常處理器放入寄存器
          • 7~18% 性能提升

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

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

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

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

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

          結語

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

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







          回復 【關閉】
          回復 【實戰(zhàn)】獲取20套實戰(zhàn)源碼
          回復 【被刪】
          回復 【訪客】
          回復 【小程序】學獲取15套【入門+實戰(zhàn)+賺錢】小程序源碼
          回復 【python】學微獲取全套0基礎Python知識手冊
          回復 【2019】獲取2019 .NET 開發(fā)者峰會資料PPT
          回復 【加群】加入dotnet微信交流群

          谷歌靈魂插件,98%的程序員都好評!


          再見Vip,免費看網(wǎng)飛影視大片!




          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天操天天干天天翘 | 亚洲三级片在线 | 欧美 中文字幕 精品 | 亚洲无码电影在线观看 | 亚洲综合在线第一页 |