TechEmpower 13轮测试中的ASP.NET Core性能测试
应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此。此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚。在选择框架时,又有许多因素需要考量,但原始性能无疑是其中最容易测评的。不同的框架性能差异极大,即使你充分利用了硬件的性能,错误的框架依然可能带来十倍的性能损耗,虽然不是每个人都会遇到如此极端的情况,但在某些情况下确实如此,因此你有必要了解各框架之间的性能差异。
TechEmpower 测试有源代码,硬件配置全部公开的测试,而且很多框架是作者或资深爱好者提交的,他们各自肯定知道该如何优化才最好,应该比较靠谱,因为这些结果都是可重现的,谁觉得不服可以自己跑跑看,源代码和需求页面提供了每种测试的执行细节以及其它相关信息,各种Web框架性能对比页面提供了更多有关如何进行测试的细节与测试基准的概况。TechEmpower 主要测试的目的是将目前流行的Web开发框架从各个角度来进行测试,这些测试的场景主要是针对这些Web执行框架的基本任务,比如数据库访问、JSON序列化和服务端模板的组合等等场景。整体得分还是有借鉴作用的。当然这种测试主要的作用还是提升士气用的。Techempower网站已经做了13轮的常用web框架的测试,它提供了2种硬件环境(硬件平台包括Azure D3v2 Instance 和专用硬件【Dell R910 application server (4x 10-Core E7-4850 CPUs) 和 a Dell R420 database server (2x 4-Core E5-2406 CPUs)】),几种测试case测试,内容包括单请求数据库访问测试、多请求数据库访问测试、Fortunes测试、JSON序列化测试;得出了一系列的web框架的性能基准。 对于架构师而言,这是一个很好的评估选择web框架的参考资料。
我们看看各个web框架的性能,以TPS为指标排序(每秒返回的response多的在前面,性能越好),所有测试都在Linux中运行。在对比中,我们看到ASP.NET Core取得优异的成绩,具体6个回合的对比请移步TechEmpower查看:
- 响应返回”Hello, world!”的JSON字符串
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=json - 从数据库读取一行记录并返回
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=db - 从数据库读取多行记录并返回
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=query - 从数据库读取整个表记录并返回
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=fortune - 修改数据库记录并返回
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=update - 响应返回”Hello, world!”的纯文本
测试结果见:http://www.techempower.com/benchmarks/#section=data-r13&hw=peak&test=plaintext
下面是返回纯文本Plaintext的性能基准:

第六回 Azure D3v2 Instance PlainText 访问测试(峰值)

第六回 专用硬件 PlainText 访问测试(峰值)
从开发者的角度来讲,.NET Core在吸收了Mono的优点以后,以一种全新的姿态面向世人,这个转变是值得期待的,而在这个转变中涌现出的新技术、新特性等等,也是我们真正该去关注的东西。相比11轮的asp.net mvc在Mono平台上的表现,ASP.NET Core每秒1822366个请求,这是一个大约提高859倍的提升。
TechEmpower 13轮测试中的ASP.NET Core性能测试的更多相关文章
- docker中运行ASP.NET Core Web API
在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...
- 在docker中运行ASP.NET Core Web API应用程序
本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...
- IIS中的 Asp.Net Core 和 dotnet watch
在基于传统的.NET Framework的Asp.Net Mvc的时候,本地开发环境中可以在IIS中建立一个站点,可以直接把站点的目录指向asp.net mvc的项目的根目录.然后build一下就可以 ...
- 在Linux和Windows的Docker容器中运行ASP.NET Core
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott H ...
- 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- Docker容器中运行ASP.NET Core
在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- [Asp.Net Core] 1. IIS中的 Asp.Net Core 和 dotnet watch
在基于传统的.NET Framework的Asp.Net Mvc的时候,本地开发环境中可以在IIS中建立一个站点,可以直接把站点的目录指向asp.net mvc的项目的根目录.然后build一下就可以 ...
- windows 服务中托管asp.net core
在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...
随机推荐
- 完美判断iframe是否加载完成
var iframe = document.createElement("iframe"); iframe.style.width = "265px"; ifr ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合
今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...
- ExtJS 4.2 Date组件扩展:添加清除按钮
ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. ...
- 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)
前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...
- 算法与数据结构(十七) 基数排序(Swift 3.0版)
前面几篇博客我们已经陆陆续续的为大家介绍了7种排序方式,今天博客的主题依然与排序算法相关.今天这篇博客就来聊聊基数排序,基数排序算法是不稳定的排序算法,在排序数字较小的情况下,基数排序算法的效率还是比 ...
- JQuery easyUI DataGrid 创建复杂列表头(译)
» Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...
- 手把手教你写一个RN小程序!
时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...
- 自定义鼠标光标cursor
通过css属性 Cursor:url()自定义鼠标光标. {cursor:url('图标路径'),default;} url是自定义鼠标图标路径 default指的是定义默认的光标(通常是一个箭头), ...
- React Native环境配置之Windows版本搭建
接近年底了,回想这一年都做了啥,学习了啥,然后突然发现,这一年买了不少书,看是看了,就没有完整看完的.悲催. 然后,最近项目也不是很紧了,所以抽空学习了H5.自学啃书还是很无趣的,虽然Head Fir ...