.NET 5.0 Preview 2发布解析

2020年4月2日微软.NET 团队的项目经理 Richard 在博客上 发布了.NET 5 Preview 2:https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-2/ ,3月16号,Scott Hunter 在博客中发布了.NET 5 Preview 1 第一个预览版发布。https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/,  博文中,Scott Hunter说:“.NET Core 3 has become the fastest adopted version of .NET ever and we’ve gained another million more users in just the last year(“ NET Core 3成为有史以来最快采用的.NET版本,而仅仅在去年,我们又获得了100万用户。”),也就是2周后(一个迭代)就发布了这个新版本。这两个版本都没有什么新特性,主要是整合.NET Core 3.1 和Mono功能到一起, 很多同学开玩笑的说.NET 5 这两个版本的发布,开发团队都在划水,打酱油。事实肯定不是这样的了,这两个版本的发布是为了在新的版本中为大家提供期待的新特性,接下来发布的.NET 5 Preview 3将会出现很多新特性,按照一个迭代一个版本的节奏,在微软5.19的 Microsoft Build 2020 大会上将发布.NET 5 Preview 5,到时肯定是Scott Hunter 向大家揭开.NET 5 的庐山真面目 ,到时也会发布Blazor RTM,正式开启Webassembly的应用,也就是C#全栈的时代,Winform/WPF的同学就可以很轻松的转移到Web上开发了,Blazor支持可以在浏览器中, 在移动设备上以及作为本机桌面应用程序(例如Windows 10x)运行的应用程序。

博客里谈到的一点就是 RyuJIT中代码质量改进:在Preview1 也谈到这点,在这个版本里做的更多了,后面每个版本都对JIT生成的代码进行了一系列性能改进,相信在11月正式发布时会是一个超级好性能的开发平台. 我们将这些类型的改进称为”CQ”或代码质量.在大多数情况下,这些改进也适用于为准备运行的images生成的代码. Preview2 的性能提升方面做的非常好,而且对ARM64 的改进更多一些,有很多性能的提升是很大的,还专门写了一篇.NET 5中的Regex性能改进:https://devblogs.microsoft.com/dotnet/regex-performance-improvements-in-net-5/。对该Regex引擎进行了一些重大改进,这些更改通常会导致吞吐量提高3-6倍,在某些情况下甚至会提高更多。

博客里另外谈到一点是垃圾回收器GC的改进,不断向着快速启动、更小的体积和内存使用,更加契合云原生时代的应用开发需求。

更重要的一点是.NET团队开始在吃自己的狗粮,使用Azure负载平衡在.NET 5.0上运行了50%的.NET网站流量。.NET团队很早就在.NET Core 3.0和3.1做过类似的事情。通过将流量分流为50/50,我们可以确保在不断获得性能数据的情况下5.0持续变得更好。我们可以访问.NET网站 ,通过浏览器刷新的形式交替看到Power by .NET Core 3.1.3和Powered by .NET Core 5.0.0-preview.2.20160.6:

image

image

园子里已经有同学翻译了这几篇文章: