.NET Core 2.1改进了性能,并提供了新的部署选项

摘要:微软正式发布了面向所有平台的 .NET Core 2.1。微软计划长期支持这个版本,但据来自微软的 Rich Lander 介绍,官方还没有确定。Lander 表示,在完成之前,该版本新增了许多小的更新。一旦正式确定,这个版本将获得为期三年的 LTS。Lander 指出,对于所有开发中的 .NET Core 应用程序,编程人员应该现在就着手切换到 2.1。

微软正式发布了面向所有平台的 .NET Core 2.1。微软计划长期支持这个版本,但据来自微软的 Rich Lander 介绍,官方还没有确定。Lander 表示,在完成之前,该版本新增了许多小的更新。一旦正式确定,这个版本将获得为期三年的 LTS。Lander 指出,对于所有开发中的 .NET Core 应用程序,编程人员应该现在就着手切换到 2.1。

切换到 2.1 有什么好处?除了很快就可以确定的 LTS 外,2.1 还提供了 Ubuntu 18.04,、Alpine Linux 和 ARM32 支持。它还添加了自包含应用程序发布,并改进了性能。

在考虑性能提升时应该注意,这里的性能提升是指,与 .NET Core 2.0 相比,2.1 的增量构建性能的提升。同时,2.1 版本还增加了一个全新的类 SocketsHttpHandler,这是 HttpClient 的 C# 实现。SocketsHttpHandler 比之前的实现要快许多,并且提供了一致的跨平台行为。

来自微软的 Stephen Toub 详细介绍了 2.1 版本的运行时性能提升。其中有些提升来自新增的 System.Span 及相关类型。.NET Core 2.1 使用的 Just-In-Time(JIT)编译器也做了一些修改。值得一提的补充是增加了利用分层编译的能力。在这个场景下,JIT 编译器会尽快生成最小优化的可执行文件。完成之后,JIT 编译器会观测程序运行,对使用频繁的方法进行更为优化的二次编译。其理论是,如果可以的话,为什么要对可能并不怎么使用的方法进行优化?这一行为并不是默认激活的,但可以通过下面的环境变量来激活:

COMPlus_TieredCompilation="1"

性能提升不限于代码优化;.NET Core 团队引入了一种新的压缩标准,减少数据传输。微软使用了一种基于谷歌提供的C代码的实现,向 .NET Core 2.1 添加了 Brotli 压缩支持。由于 Brotli 得到了许多 Web 浏览器和 Web 服务器的广泛支持,所以 .NET Core 提供对这项技术的支持是非常有用的。

最后,.NET Core 2.1 支持自包含部署(SCD)。这让开发者生成的应用程序的 Release 构建中可以包含所有执行时需要的 .NET Core 运行时文件。然而,与平常的构建相比,这会占用更多的磁盘空间,因此,它允许开发人员指定应用程序运行的平台和使用的 .NET Core 版本。

微软已经提供了 .NET Core 2.1 的完整发布说明及所有支持平台的下载(Windows、macOS 和 Linux)。

来自: InfoQ

扩展阅读

提升 Node.js 应用性能的 5 个技巧
年度最佳硬件、软件、开发工具和云服务
2004至今 微软开源大事记
理解 .NET 2015
从Visual Studio 2017谈起,解析微软技术生态进化之道

为您推荐

利用HTML5与jQuery技术创建一个简单的自动表单完成
最受欢迎的ASP.NET的CMS下载
前端篇: 前端演进史
最常见的 20 个 jQuery 面试问题及答案
为 Java 程序员准备的 Go 入门 PPT

更多

.NET Core
软件编程