热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

TechEmpower21轮Web框架性能评测--C#的性能和Rust、C++并驾齐驱-自从2021年2月第20轮公布的测试以后,一年半后的2022年7月19日发布了TechEm

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

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

asp.net core从去年的综合得分第八名上升一位到了第7名,排名虽然只提升1位,但是相对第一名的性能,从去年的 68%提升到了 83.7%,这个提升不可谓不巨大,要知道排前面都是rust, c++选手,已经比较接近了,都在7000级别,另外,论使用量, asp.net core在前10名的框架中毫无疑问是最多的。 性能已经是asp.net core的优势了,相对java主流框架, go全部框架来看,都是如此,更别说世界上最好的语言PHP了。

表上前缀T标签表示精选的主流编程语言:https://www.techempower.com/benchmarks/#section=data-r21&test=composite

  • 第1名 C++的drogon 7801分
  • 第2名 Rust的actix  7667分
  • 第6名 C#的ASP.NET Core 7077分
  • 第63名 Go的gin  1943分
  • 第67名 Java的Spring 1846分
  • 第113名 基于Elixir的 phoenix 687 分
  • 第116名 Nodejs的Express 615分
  • 第130名 PHP的laravel 371分
  • 第131名 Ruby的 rails 366分
  • 第137名 Python的django 274分

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

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

Fortunes测试类型是最有趣的,因为它包括使用对象关系映射器(ORM)和数据库。这是Web应用程序/服务中的常见用例。以前版本的ASP.NET Core在这种情况下表现不佳。由于堆栈和PostgreSQL驱动程序中的优化,ASP.NET Core 2.1得到了显著改进, 3.1 版本又 提升到了27万,5.0版本提升到了40万,6.0版本提升到了45万。 其他方案不太代表典型的应用程序。他们强调堆栈的特定方面。如果它们与您的用例紧密匹配,它们可能会很有趣。对于框架开发人员,他们帮助识别进一步优化堆栈的机会。 例如,考虑Plaintext方案。此方案涉及客户端发送16个请求背靠背(流水线),服务器知道响应,而无需执行I / O操作或计算。这不代表典型的请求,但它是解析HTTP请求的良好压力测试。 每个实现都有一个类。例如,ASP.NET Core Plaintext具有platform, micro和full 实现。full 的实现是使用MVC中间件。Micro实现在管道级实现,platform实现直接建立在Kestrel之上。虽然Platform 类提供了引擎功能强大的概念,但它不是用于应用程序开发人员编程的API。 基准测试结果包括Latency选项卡。一些实现每秒实现非常多的请求,但是以相当大的延迟成本。

相关文章:

  • TechEmpower 13轮测试中的ASP.NET Core性能测试

  • TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗

  • TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹


推荐阅读
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有