首页前端开发HTMLTechEmpower 21 轮 Web 框架性能评测 -- C# 的性能和 Rust、C++ 并驾齐驱

TechEmpower 21 轮 Web 框架性能评测 -- C# 的性能和 Rust、C++ 并驾齐驱

时间2023-07-11 17:59:02发布访客分类HTML浏览1029
导读:自从 2021 年 2 月第 20 轮公布的测试以后,一年半后的 2022 年 7 月 19 日 发布了 TechEmpower 21 轮测试报告:Round 21 results - TechEmpower Framework Bench...

自从 2021 年 2 月第 20 轮公布的测试以后,一年半后的 2022 年 7 月 19 日 发布了 TechEmpower 21 轮测试报告:Round 21 results - TechEmpower Framework Benchmarks。Techempower benchmark 是包含范围最广泛的 web 框架性能测试,覆盖了比较典型的使用场景,其可参考性极强。另外,所有测试源代码和软硬件配置都开放,基本得到大家的认可。

基准测试代码地址:https://github.com/TechEmpower/FrameworkBenchmarks

TechEmpower 基准测试

TechEmpower 基准测试有许多场景(也称为测试类型),此次评测多了一个综合评分选项,把拥有完整测试覆盖的框架现在将具有综合分数,这反映了测试项目类型的总体性能得分:JSON serialization, Single-query, Multi-query, Updates, FortunesPlaintext。对于每一轮,我们使每个测试类型的结果规范化,然后为每个测试类型应用主观权重(例如,Fortunes 的权重比 Plaintext 高,因为 Fortunes 是一种更现实的测试类型)。

=》asp.net core 排第 7 名,主流排名第 3 名,asp.net 已经在排行榜里面找不到了。

TechEmpower 21 轮测试报告

2022 年 7 月 19 日发布了 TechEmpower 21 轮测试报告:https://www.techempower.com/benchmarks/#section=data-r21& test=composite

asp.net core 从去年的综合得分第 8 名上升 1 位到了第 7 名,排名虽然只提升 1 位,但是相对第 1 名的性能,从去年的 68% 提升到了 83.7%,这个提升不可谓不巨大,要知道排前面都是 rust, c++ 选手,已经比较接近了,都在 7000+ 级别,另外,论使用量,asp.net core 在前 10 名的框架中毫无疑问是最多的。

性能已经是 asp.net core 的优势了,相对 java 主流框架,go 全部框架来看,都是如此,更别说世界上最好的语言 PHP 了。

主流编程语言框架性能对比

表上前缀 T 标签表示精选的主流编程语言:TechEmpower Framework Benchmarks

  • 第1名 C++drogon 7801分
  • 第2名 Rustactix 7667分
  • 第6名 C#ASP.NET Core 7077分
  • 第63名 Gogin 1943分
  • 第67名 JavaSpring 1846分
  • 第113名 Elixirphoenix 687 分
  • 第116名 Node.jsExpress 615分
  • 第130名 PHPlaravel 371分
  • 第131名 Rubyrails 366分
  • 第137名 Pythondjango 274分

性能 & 托管服务成本衡量

应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的 web 框架,初创公司尤其如此。

此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最容易测评的。不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的性能差异。

在当今无服务器和容器的时代,很高兴看到行业竞争并在冷启动和内存消耗方面进行艰难的测试,PlaintText 单项排名很好的体现了这一项:

Fortunes 测试类型是最有趣的,因为它包括使用对象关系映射器(ORM)和数据库。这是 Web应用程序/服务 中的常见用例。以前版本的 ASP.NET Core 在这种情况下表现不佳。由于堆栈和 PostgreSQL 驱动程序中的优化,ASP.NET Core 2.1 得到了显著改进, ASP.NET Core 3.1 版本又提升到了 27 万,5.0 版本提升到了 40 万,6.0 版本提升到了 45 万。

其他方案不太代表典型的应用程序。他们强调堆栈的特定方面。如果它们与您的用例紧密匹配,它们可能会很有趣。对于框架开发人员,他们帮助识别进一步优化堆栈的机会。

例如,考虑 Plaintext 方案。此方案涉及客户端发送 16 个请求背靠背(流水线),服务器知道响应,而无需执行 I/O 操作或计算。这不代表典型的请求,但它是解析 HTTP 请求的良好压力测试。 每个实现都有一个类。

例如,ASP.NET Core Plaintext 具有 platform, microfull 实现。

  • full 的实现是使用 MVC 中间件。
  • Micro 实现在管道级实现,
  • platform 实现直接建立在Kestrel之上。

虽然 Platform 类提供了引擎功能强大的概念,但它不是用于应用程序开发人员编程的 API。 基准测试结果包括 Latency 选项卡。一些实现每秒实现非常多的请求,但是以相当大的延迟成本。

相关文章:

  • TechEmpower 13 轮测试中的 ASP.NET Core 性能测试 =》https://www.cnblogs.com/shanyou/p/6082499.html
  • TechEmpower Web 框架性能第 19 轮测试结果正式发布,ASP.NET Core 在主流框架中拔得头筹 =》https://www.cnblogs.com/shanyou/p/12995227.html

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

开发框架Rust.NETJava测试技术GoPHPC#C++Ruby

若转载请注明出处: TechEmpower 21 轮 Web 框架性能评测 -- C# 的性能和 Rust、C++ 并驾齐驱
本文地址: https://pptw.com/jishu/303743.html
MoE 系列(五)|Envoy Go 扩展之内存安全 JDBC数据库连接池的必要性、数据库连接池技术及几种开源数据库连接池

游客 回复需填写必要信息