.NET平台系列16 .NET5/Asp.Net Core 在全球Web框架权威性能测试 Web Framework Benchmarks 中的吊炸天表现

TechEmpower Web Framework Benchmarks 是许多Web应用程序框架执行基本任务(如JSON序列化、数据库访问和服务器端模板组合)的性能比较的专业网站。每个框架都在实际的生产配置中运行。结果在云实例和物理硬件上捕获。测试实现主要是由社区贡献的,所有源都可以在GitHub存储库中使用。
用“框架”这个词来泛指平台、微框架和全栈框架。
在2013年3月的一篇博客文章中,我们发布了几个执行简单但有代表性的任务的Web应用程序框架的性能比较结果:序列化JSON对象和查询数据库。从那时起,社区投入巨大。我们现在所说的所有项目贡献者都定期更新测试实现,扩大覆盖范围,并在半定期更新中捕获结果,我们称之为“轮次”。
我们期望所有框架的测试都能通过社区的投入得到改进。因此,我们非常高兴收到任何框架的粉丝们的请求。我们希望我们对每个框架的测试都能达到最佳效果,因此我们邀请您加入。
反馈持续不断,我们计划通过以下几种方式不断更新项目,例如:
- 覆盖更多框架。由于迄今为止社区的贡献,所涵盖的框架数量已经相当大。如果您提交拉取请求,我们很乐意添加更多内容。
- 其他测试类型。
- 测试更多类型的硬件。
- 此网站结果的功能增强。
我们的目标是根据从文档和流行社区意见中收集的生产部署最佳实践来配置每个框架,并要求贡献者应用相同的经验法则。我们希望每个测试实现(请参阅“术语”部分)尽可能准确地接近合理的生产部署。我们还希望这个项目尽可能透明,所以我们在GitHub上发布了我们的测试套件。
这个项目测量两种常见部署场景的性能:云实例和物理硬件。到目前为止,每一轮都为这些场景使用了一个具有代表性的环境。环境的特定规范随着时间的推移而变化,如下所示:
- 云环境
- Azure(第13轮之后)Microsoft Azure D3v2实例;交换千兆以太网。
- AWS(第1轮至第12轮)amazonec2.c3大型实例(每个实例2个vCPU);交换千兆以太网(第9轮使用m1.large)。
- 物理硬件环境
- Citrine (rounds 16 onward) 三台同构的Dell R440服务器,每台都配备Intel Xeon Gold 5120 CPU、32 GB内存和企业级SSD。专用Cisco万兆以太网交换机。由Microsoft提供。
- ServerCentral (rounds 13 through 15) Dell R910(4x 10核Intel Xeon E7-4850 CPU)应用服务器;Dell R710(2x 4核Intel Xeon E5520 CPU)数据库服务器;交换式万兆以太网。由服务器中心提供。
- Peak (rounds 9 through 12) Dell R720xd dual Intel Xeon E5-2660 v2(40个HT内核),32 GB内存;RAID中配备SSD的数据库服务器;交换式万兆以太网。由Peak Hosting提供。
- i7 (rounds 1 through 8) 内部Intel Sandy Bridge Core i7-2600K工作站,8 GB内存(2011年初);数据库服务器配备三星840 Pro SSD;交换千兆以太网。
从上表测试结果中可以明显看到多次测试中 ASP.NET Core 综合测试排行一直名列前茅,其他单项测试中文本性能异常优秀,主要归功于.NET 团队对 CoreCLR 的不断深度改进与优化等方面做出的努力。
详细测评结果参考下列最新测评轮次。
- 综合测评(物理机器):第8名

- 综合测评(云服务器):第7名

- 普通文本测评(物理机器):第2名

- 普通文本测评(云服务器):第14名

其他轮次测评详细结果请参考:https://www.techempower.com/benchmarks/#section=data-r20&hw=cl&test=plaintext
参考文献:
- https://www.techempower.com/benchmarks/
.NET平台系列16 .NET5/Asp.Net Core 在全球Web框架权威性能测试 Web Framework Benchmarks 中的吊炸天表现的更多相关文章
- .NET平台系列15 .NET5的吊炸天性能改进
系列目录 [已更新最新开发文章,点击查看详细] .NET5的性能改进测试功能 Benchmark.NET现在是衡量.NET代码性能的规范工具,可轻松分析代码段的吞吐量和分配. .NET5的性能 ...
- .NET平台系列13 .NET5 统一平台
系列目录 [已更新最新开发文章,点击查看详细] 时机决定一切,对于 .NET5 也是如此.实际上微软.NET团队在开始开发 .NET Core 时,对 .NET Framework 的全面重写 ...
- 探索 ASP.Net Core 3.0系列三:ASP.Net Core 3.0中的Service provider validation
前言:在本文中,我将描述ASP.NET Core 3.0中新的“validate on build”功能. 这可以用来检测您的DI service provider是否配置错误. 具体而言,该功能可检 ...
- 探索ASP.Net Core 3.0系列六:ASP.NET Core 3.0新特性启动信息中的结构化日志
前言:在本文中,我将聊聊在ASP.NET Core 3.0中细小的变化——启动时记录消息的方式进行小的更改. 现在,ASP.NET Core不再将消息直接记录到控制台,而是正确使用了logging 基 ...
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)
HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expo ...
- [转]【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)
本文转自:https://www.cnblogs.com/inday/p/6288707.html HTTP is not just for serving up web pages. It’s al ...
- asp.net core 集成 log4net 日志框架
asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...
- Blazor——Asp.net core的新前端框架
原文:Blazor--Asp.net core的新前端框架 Blazor是微软在Asp.net core 3.0中推出的一个前端MVVM模型,它可以利用Razor页面引擎和C#作为脚本语言来构建WEB ...
- ASP.NET Core的身份认证框架IdentityServer4--入门
ASP.NET Core的身份认证框架IdentityServer4--入门 2018年08月11日 10:09:00 qq_42606051 阅读数 4002 https://blog.csdn ...
随机推荐
- Day07_39_集合中的remove()方法 与 迭代器中的remove()方法
集合中的remove()方法 与 迭代器中的remove()方法 深入remove()方法 iterator 中的remove()方法 collection 中的remove(Object)方法 注意 ...
- 记canvas画笔笔迹的多次优化过程
我们的项目是面向学校老师的教学软件,所以肯定少不了互动白板的功能,而这个里面的画笔功能是由我来开发的,下面介绍这个过程中遇到的问题以及解决方法. 首先给大家明确下由于软件中的画布可以自由移动,会超出屏 ...
- zabbix容器化安装及监控docker应用
一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...
- 1057 Stack
Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...
- hdu3313 最大流找关键点,或者最短路找关键点.
题意: 给你一个有向图,然后给你起点和终点,问你从起点到终点有多少个关键点,如果当前的这个点删除了就无法从起点到终点,那么这个点就是一个关键点.. 思路: (1)有两种做法,我用的 ...
- 绕过CDN查找网站真实ip
在渗透测试过程中,经常会碰到网站有CDN的情况.CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题.说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把 ...
- Portswigger web security academy:OAth authentication vulnerable
Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...
- 在kubernetes上运行WASM负载
在kubernetes上运行WASM负载 WASM一般用在前端业务中,但目前有扩展到后端服务的趋势.本文使用Krustlet 将WASM服务部署到kubernetes. 简介 Krustlet 是一个 ...
- 【Git】2. Git常用命令详解、版本切换原理
一.新增文件 1.设置用户签名 签名的作用就是为了区分不同的人,方便查看版本的时候知道操作的人是谁.首次安装好git之后必须设置一下签名,否则无法提交代码. 另外,这里设置的签名跟你登录到远程仓的账号 ...
- [LeetCode每日一题]781. 森林中的兔子
[LeetCode每日一题]781. 森林中的兔子 问题 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. ...