【翻译】.NET 5 Preview2发布
HueiFeng 人气:0
在4月2日,发布了.NET 5.0 Preview2,这次发布对一些功能和性能做了相关的改进,同时后面也会实施5.0版本更多的功能,其中一些功能目前也[dotnethttps://img.qb5200.com/download-x/designs](https://github.comhttps://img.qb5200.com/download-x/dotnethttps://img.qb5200.com/download-x/designs/pulls)在[.NET 5 Preview1](https:/https://img.qb5200.com/download-x/devblogs.microsoft.comhttps://img.qb5200.com/download-x/dotnet/announcing-net-5-0-preview-1/)中可以看到.NET 5里程碑中已经完成的建设任务,当然可以查看相关的设计资料进行反馈,同时可以下载Preview2并进行测试他。
可以在Windows MacOS和Linux下载[.NET 5 Preview2](https:/https://img.qb5200.com/download-x/dotnet.microsoft.comhttps://img.qb5200.com/download-x/downloadhttps://img.qb5200.com/download-x/dotnet-core/5.0)
- [.NET 5 Preview2 And Runtimes](https:/https://img.qb5200.com/download-x/dotnet.microsoft.comhttps://img.qb5200.com/download-x/downloadhttps://img.qb5200.com/download-x/dotnet-core/5.0)
- [Docker Images](https://hub.docker.com/_/microsoft-dotnet-core)
- [Snap Installer](https://snapcraft.iohttps://img.qb5200.com/download-x/dotnet-sdk)
[ASP.NET Core](https:/https://img.qb5200.com/download-x/devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-2/)和[EF Core](https:/https://img.qb5200.com/download-x/devblogs.microsoft.comhttps://img.qb5200.com/download-x/dotnet/announcing-entity-framework-core-5-0-preview-2/)也在当天发布。
必须要使用[Visual Studio 2019 16.6](https:/https://img.qb5200.com/download-x/devblogs.microsoft.com/visualstudio/visual-studio-2019-version-16-6-preview-2/)才可以使用.NET 5.0。安装最新版本的C# 扩展,将.NET 5.0在VisualStudio Code中使用,目前还不支持Mac的Visual Studio.
发行说明:
- [.NET 5.0 Preview2发行说明](https://github.comhttps://img.qb5200.com/download-x/dotnet/core/blob/master/release-notes/5.0/preview/5.0.0-preview.2.md)
- [.NET 5.0已知问题](https://github.comhttps://img.qb5200.com/download-x/dotnet/core/blob/master/release-notes/5.0/5.0-known-issues.md)
- [GitHub中issues](https://github.comhttps://img.qb5200.com/download-x/dotnet/core/issues/4500)
## RyuJIT中代码质量的改进
每个版本都包含着一些更改,这些更改可以改进JIT生成的机器代码(它被称为“code quality”).更好的代码质量意味着更好的性能。总而言之,下面改进中一半的是实际的新优化,另一半是由于更改RyuJIT的流程而使现有优化能够应用到更多的代码中.
- [Use xmm for stack prolog – dotnet/runtime #32538 ](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/32538) 更改为x86/x64 prolog归零代码,改进:Json;
- [Add ValueNumbering support for GT_SIMD and GT_HWINTRINSIC tree nodes – dotnet/runtime #31834 ](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/31834)—为SIMD和硬件固有类型启用优化器。
- [Use GT_NULLCHECK for unconsumed indirections – dotnet/runtime #32641](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/32641)—删除冗余null检查。
- [invoke nullable box optimizations earlier – dotnet/runtime #32269](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/32269)—改善优化Nullable。
- [Optimize range checks for various array index patterns – dotnet/runtime #1644](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/1644)-消除 **range checks** 的改进。
- [Optimize obj.GetType() != typeof(X) for sealed classes – dotnet/runtime #32790](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/32790)-改进了类型检查表达式。
- [Eliminate duplicate zero initializations more aggressively – dotnet/runtime #31960](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/31960)—更好和更广泛的方法,以消除重复零初始化。
- [Fix method and basic block flags used by early opts – dotnet/runtime #2196](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/2126)
- 优化某些可以频繁使用,现在更经常地用常数替换数组长度。
## 垃圾收集器
- [Card mark stealing – dotnet/coreclr #25986](https://github.comhttps://img.qb5200.com/download-x/dotnet/coreclr/pull/25986)- 服务器GC(位于不同线程上)可以在标记由较早一代对象保留的gen0/ 1对象时进行执行获取。 这意味着,对于某些GC线程要花费更长的时间进行标记的情况,短暂的GC暂停时间较短。
- [Introducing Pinned Object Heap – dotnet/runtime #32283](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/32283) — 实现了POH(Pinned Object Heap)功能的一部分– GC内部的一部分。 这个新的堆(本质上是LOH的对等体)将允许GC分别管理固定对象,从而避免固定对象对世代堆的负面影响。
- [Allow allocating large object from free list while background sweeping SOH – dotnet/runtime #2103](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/2103) — 当BGC清理SOH时,使用空闲列表启用LOH分配。以前这只是在LOH上使用段空间的末端。这样可以更好地使用堆。
- [Background GC suspension fixes – dotnet/coreclr #27729](https://github.comhttps://img.qb5200.com/download-x/dotnet/coreclr/pull/27729) -暂停修复程序减少了BGC和用户线程被暂停的时间。 这样可以减少发生GC之前挂起托管线程所需的总时间。 dotnet / coreclr#27578也有助于达到相同的结果。
- [Fix named cgroup handling in docker – dotnet/runtime #980](https://github.comhttps://img.qb5200.com/download-x/dotnet/runtime/pull/980) — -
添加了对从命名cgroup读取限制的支持。以前,我们仅从全局范围内阅读。
## Closing
在容器,虚拟机大家可以去尝试Preview2。希望大家对.NET5提出并反馈意见。接下来几个月里面,将会有更多的版本发布。最终将在11月发布正式版本。
作为测试案例,目前.NET 5.0在Azure负载均衡上运行了[.NET网站](https:/https://img.qb5200.com/download-x/dotnet.microsoft.com/)的50%的流量.
自从发布预览版1天以来一直在上面这么做了,也许大家还记得.NET Core3.0和3.1也这样做过测试案例.
通过将流量分流为5/5,可以确保在不断地性能数据情况下5.0将持续的改进变得更好。这种测试是公开的,也是一种很好的测试方法,目前用.NET5在核心网站的生产环境这将是对.NET5最大的信任,当然不建议大家这样是哟经,建议等等.目前版本号在[网站](https:/https://img.qb5200.com/download-x/dotnet.microsoft.com/)的页脚中可以看到。
来源:https:/https://img.qb5200.com/download-x/devblogs.microsoft.comhttps://img.qb5200.com/download-x/dotnet/announcing-net-5-0-preview-2/
加载全部内容