【问题标题】:Performance improvements from ASP.NET Core 2.1 for full .NET framework?ASP.NET Core 2.1 对完整 .NET 框架的性能改进?
【发布时间】:2018-07-31 07:00:53
【问题描述】:

我有一个基于 ASP.NET Core 2.0 的现有项目,该项目在完整的 .NET 框架上运行。我的案例的微软文档是here。该应用程序使用 Kestrel 和 libuv 来提供传入连接。

理论上,ASP.NET Core 2.1 如何提升/降低我案例的性能?

我的项目在完整的 .NET Framework 4.7.2 上运行。在我看来,Performance Improvements in .NET Core 2.1 不会从中受益。对吧?

还提到了ASP.NET Core 2.1 发行说明。

托管套接字将 libuv 替换为 Kestrel 的默认传输。

这对在完整 .NET 框架上运行的应用程序有很大影响吗?

【问题讨论】:

标签: asp.net-core .net-core asp.net-core-2.0


【解决方案1】:

你是对的。由于您在 .NET Framework 上运行,因此您不会受到 .NET Core 2.1 的性能改进的影响。虽然这些更改最终也会(至少部分)影响到 .NET Framework,但我们还没有实现。

如果您想要获得最佳性能,那么您应该使用 .NET Core,它始终是进行最多改进并且最先发生改进的运行时。

但是,这并不意味着 .NET Framework 很慢。过去在 .NET Framework 上构建了无数应用程序,其中还包括许多对性能非常关键的东西。甚至 Stack Overflow 目前也在 .NET Framework 上运行。因此,仅仅因为 .NET Core 可以更快,这并不会使 .NET Framework 变得糟糕。在完整的框架上运行非常好。

话虽如此,ASP.NET Core 2.1 当然也包括可能影响性能的更改。虽然大多数已宣布的速度改进来自 .NET Core 2.1 的更改,但如果还有其他更改也会显示出明显的改进也就不足为奇了。 Sockets 传输层就是其中之一。

无论性能如何改进,您都应该从 2.0 升级到 2.1。 .NET Core 2.0 和 ASP.NET Core 2.0 将 reach EOL on October 1st 2018。所以到那个时候,如果你想得到微软的支持,你应该已经升级了。

【讨论】:

  • 在 LINQ、集合等方面有很多性能改进,只要切换到 .NET Core 2.x,就会影响应用程序,就像 here 中描述的那样。
  • @PanagiotisKanavos 是的,但这个问题是关于 .NET Framework 的。 OP 询问在切换到 2.1 时 .NET Framework 是否有性能改进,因为知道 .NET Core 有很多改进。
  • 哪个版本的 .NET 框架将包含这些改进?似乎它们不会出现在 .Net Framework 4.8 中
  • @Mr.WangfromNextDoor 到目前为止,这还不知道。我认为在我们看到这些更改到达框架之前还需要很长时间。因此,如果您真的需要这些改进,最好切换到 Core。
猜你喜欢
  • 2018-12-06
  • 1970-01-01
  • 2017-08-31
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2017-10-12
  • 1970-01-01
相关资源
最近更新 更多