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