Asp.Net core (完整 .Net 框架) 与 Asp.Net core (.Net Core) 的性能比较

14
我发现Asp.Net Core的一个主要好处是相对传统Asp.Net,具有多重性能提升(每秒请求数)。我发现许多基准测试网站都谈论了Asp.Net Core的性能,但我不确定这种性能是基于带有.Net Core框架的Asp.Net Core还是同样适用于Asp.Net Core(完整的.Net框架)。
您知道/有文章可以解释/比较Asp.Net Core(.Net Core)与Asp.Net(完整框架)之间的性能吗?
谢谢。

2
没有官方基准可以比较这个,而TechEmpower只比较了在Linux上运行的ASP.NET Core和其他操作系统,并且https://github.com/aspnet/benchmarks相当陈旧,已经有一段时间没有更新了。但是您可以获取存储库并按照说明生成负载。您需要两台物理服务器,一台用于服务器应用程序,另一台用于生成负载,因为在同一台机器上执行两者会影响基准结果(wrk工具也使用了相当多的资源来生成此数量的请求)。 - Tseng
谢谢@Tseng提供的“如何进行基准测试”的指引。 - Venkatesh Muniyandi
2
我看到asp.net core被吹嘘的主要基准是TechEmpower纯文本基准。在这种情况下,由于运行的代码很可能只是asp.net core代码(即Kestrel和owin的asp.net core实现),因此asp.net core针对完整框架或.net core框架运行时性能差异不大。 - RonC
5
不幸的是,这并不是真的。在某些领域,.NET Core比.NET Framework快很多,这意味着在相同的场景下,ASP.NET Core在.NET Core上比在.NET Framework上更快。我们通常会花更多时间测试.NET Core性能,并确保.NET Framework的性能基本上可以媲美,但它没有得到同样多的支持,因为在框架层面上我们能做的更少。 - davidfowl
3个回答

12

1
ASP.Net Core 2.0的速度几乎比ASP.net 4.6和ASP.Net 4.7框架快两倍。
在比较完整的.Net框架与.Net Core的性能时,ASP.Net Core胜出,但是由于某些预构建功能与asp.net框架一起使用,.Net Framework也具有一些优势。
但就速度而言,ASP.Net Core(.Net Core)甚至赢过了Node.js。

-1
我们正在检查 asp.net core 2.0 的性能,并发现了以下问题:

使用 ASP.NET Core 模块在 IIS 下托管/运行的 Asp.Net Core 应用程序性能最差,大约比 Full Framework 差60%。

第二种情况:同一应用程序进行自托管,并使用IIS作为反向代理,同时使用 URL 重写模块,性能比 Full FW 提高了约20%。FW 4.6.1。

另一个对性能有重大影响的方面是日志记录。确保测试的应用程序不会将调试/信息日志写入控制台(默认情况下)。 在测试下的日志配置应该不记录信息和调试。

我们处理的第二个问题是:当使用 WCF 服务时,Asp.net core 性能问题。我们发现,在当前版本2.0.5中,与 Asp.Net FW 相比,性能差70%,更重要的是所有测试中有23%的错误率。

问题在于端口枯竭。微软建议增加临时端口的数量。增加临时端口的数量可以改善错误率,但无法解决问题。 我们的测试设置: Asp.Net core2.0和Asp.Net FW 应用程序,具有返回一些字符串的 WEB Api 控制器 负载测试:从5个用户开始,每30秒增加5个。测试运行8分钟

阅读ASP.Net Core 2.1 路线图。我认为微软已经意识到这些问题,并将在2.1版本中修复主要问题。 我们正在等待它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接