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

简介: 版权声明:本文为 CSDN 博主「shanyou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/shanyou/article/details/126081288

自从 2021 年 2 月第 20 轮公布的测试以后,一年半后的 2022 年 7 月 19 日 发布了 TechEmpower 21 轮测试报告:Round 21 results - TechEmpower Framework BenchmarksTechempower 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

TechEmpower21

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

主流语言web框架性能对比

  • 第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 单项排名很好的体现了这一项:

image.png

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 选项卡。一些实现每秒实现非常多的请求,但是以相当大的延迟成本。

相关文章:

目录
相关文章
|
17天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
33 11
|
1月前
|
缓存 API C#
C# 一分钟浅谈:GraphQL 优化与性能提升
本文介绍了 GraphQL API 的常见性能问题及优化方法,包括解决 N+1 查询问题、避免过度取数据、合理使用缓存及优化解析器性能,提供了 C# 实现示例。
85 33
|
19天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
43 10
|
1月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
112 13
|
2月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
51 8
|
2月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
48 5
|
2月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
50 2
|
2月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
163 1
WK
|
2月前
|
开发框架 开发工具 C++
C++跨平台框架Qt
Qt是一个功能强大的C++跨平台应用程序开发框架,支持Windows、macOS、Linux、Android和iOS等操作系统。它提供了250多个C++类,涵盖GUI设计、数据库操作、网络编程等功能。Qt的核心特点是跨平台性、丰富的类库、信号与槽机制,以及良好的文档和社区支持。Qt Creator是其官方IDE,提供了一整套开发工具,方便创建、编译、调试和运行应用程序。Qt适用于桌面、嵌入式和移动应用开发。
WK
88 5