在4月2日,發布了.NET 5.0 Preview2,這次發布對一些功能和性能做了相關的改進,同時后面也會實施5.0版本更多的功能,其中一些功能設計目前也在dotnet/designs中顯示,在.NET 5 Preview1中可以看到.NET 5里程碑中已經完成的建設任務,當然可以查看相關的設計資料進行反饋,同時可以下載Preview2并進行測驗他,
可以在Windows MacOS和Linux下載.NET 5 Preview2
- .NET 5 Preview2 And Runtimes
- Docker Images
- Snap Installer
ASP.NET Core和EF Core也在當天發布,
必須要使用Visual Studio 2019 16.6才可以使用.NET 5.0,安裝最新版本的C# 擴展,將.NET 5.0在VisualStudio Code中使用,目前還不支持Mac的Visual Studio.
發行說明:
- .NET 5.0 Preview2發行說明
- .NET 5.0已知問題
- GitHub中issues
RyuJIT中代碼質量的改進
每個版本都包含著一些更改,這些更改可以改進JIT生成的機器代碼(它被稱為“code quality”).更好的代碼質量意味著更好的性能,總而言之,下面改進中一半的是實際的新優化,另一半是由于更改RyuJIT的流程而使現有優化能夠應用到更多的代碼中.
- Use xmm for stack prolog – dotnet/runtime #32538 更改為x86/x64 prolog歸零代碼,改進:Json;
- Add ValueNumbering support for GT_SIMD and GT_HWINTRINSIC tree nodes – dotnet/runtime #31834 —為SIMD和硬體固有型別啟用優化器,
- Use GT_NULLCHECK for unconsumed indirections – dotnet/runtime #32641—洗掉冗余null檢查,
- invoke nullable box optimizations earlier – dotnet/runtime #32269—改善優化Nullable
, - Optimize range checks for various array index patterns – dotnet/runtime #1644-消除 range checks 的改進,
- Optimize obj.GetType() != typeof(X) for sealed classes – dotnet/runtime #32790-改進了型別檢查運算式,
- Eliminate duplicate zero initializations more aggressively – dotnet/runtime #31960—更好和更廣泛的方法,以消除重復零初始化,
- Fix method and basic block flags used by early opts – dotnet/runtime #2196
- 優化某些可以頻繁使用,現在更經常地用常數替換陣列長度,
垃圾收集器
- Card mark stealing – dotnet/coreclr #25986- 服務器GC(位于不同執行緒上)可以在標記由較早一代物件保留的gen0/ 1物件時進行執行獲取, 這意味著,對于某些GC執行緒要花費更長的時間進行標記的情況,短暫的GC暫停時間較短,
- Introducing Pinned Object Heap – dotnet/runtime #32283 — 實作了POH(Pinned Object Heap)功能的一部分– GC內部的一部分, 這個新的堆(本質上是LOH的對等體)將允許GC分別管理固定物件,從而避免固定物件對世代堆的負面影響,
- Allow allocating large object from free list while background sweeping SOH – dotnet/runtime #2103 — 當BGC清理SOH時,使用空閑串列啟用LOH分配,以前這只是在LOH上使用段空間的末端,這樣可以更好地使用堆,
- Background GC suspension fixes – dotnet/coreclr #27729 -暫停修復程式減少了BGC和用戶執行緒被暫停的時間, 這樣可以減少發生GC之前掛起托管執行緒所需的總時間, dotnet / coreclr#27578也有助于達到相同的結果,
- Fix named cgroup handling in docker – dotnet/runtime #980 — -
添加了對從命名cgroup讀取限制的支持,以前,我們僅從全域范圍內閱讀,
Closing
在容器,虛擬機大家可以去嘗試Preview2,希望大家對.NET5提出并反饋意見,接下來幾個月里面,將會有更多的版本發布,最終將在11月發布正式版本,
作為測驗案例,目前.NET 5.0在Azure負載均衡上運行了.NET網站的50%的流量.
自從發布預覽版1天以來一直在上面這么做了,也許大家還記得.NET Core3.0和3.1也這樣做過測驗案例.
通過將流量分流為5/5,可以確保在不斷地性能資料情況下5.0將持續的改進變得更好,這種測驗是公開的,也是一種很好的測驗方法,目前用.NET5在核心網站的生產環境這將是對.NET5最大的信任,當然不建議大家現在進行使用到生產中,建議等等.目前版本號在網站的頁腳中可以看到,
來源:https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-2/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/49218.html
標籤:.NET Core
