.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 ...
随机推荐
- 【Azure Developer】使用Java SDK代码创建Azure VM (包含设置NSG,及添加数据磁盘SSD)
在参考Azure官方文档进行VM创建时,发现其中没有包含如何设置NSG的内容,以及如何在创建时就添加数据磁盘的代码(设置磁盘为SSD类型).本文的内容以"使用 Java 创建和管理 Azur ...
- 【Nginx(四)】Nginx配置集群 负载均衡策略
1.Nginx常见的负载均衡策略 ip_hash (固定分发) 简介:根据请求按访问ip的hash结果分配,这样每个用户就可以固定访问一个后端服务器 场景:服务器业务分区.业务缓存.Session需要 ...
- DVWA之 SQL Injection(Blind)
SQL Injection(Blind) SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法 ...
- Linux中的防火墙(Netfilter、Iptables、Firewalld)
目录 Netfilter Iptables iptables做本地端口转发 Firewalld Netfilter Netfilter是Linux 2.4内核引入的全新的包过滤引擎,位于Linux内核 ...
- Docker用Commit给容器做快照
关于 commit 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础. 镜像是多层存储,每一层是在前一层的基础上进行修改:而容器同样也是多层存储,是在以镜像为 ...
- Windows PE变形练手3-把通用模板机器码直接覆盖目标PE
把通用模板机器码直覆盖目标PE 这个地方真是尝试了好久,遇到很多坑点,Win PE那本书上的东西有点不够,也就直接写书上的例子会发现很多地方不是说的那样,里面提供的信息太少了,就比如里面并没有提被注入 ...
- 什么?这么精髓的View的Measure流程源码全解析,你确定不看看?
前言 Android开发中我们平时接触最多的是各种View, View是一个比较大的体系,包含了绘制流程.事件分发.各种动画.自定义View 等等.前几天我写了一篇事件分发源码解析的文章, 今天我们来 ...
- 记一次 .NET 医院CIS系统 内存溢出分析
一:背景 1. 讲故事 前几天有位朋友加wx求助说他的程序最近总是出现内存溢出,很崩溃,如下图: 和这位朋友聊下来,发现他也是搞医疗的,哈哈,.NET 在医疗方面还是很有市场的,不过对于内存方面出的问 ...
- Day003 JavaDoc
JavaDoc javadoc命令是用来生成自己的Api文档的 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @retu ...
- php 获取某年后的日期
比如两年后:date('Y-m-d',strtotime('+2 year')) 月份year改成month