TechEmpower 框架性能测试数据 - 新解读
1. TechEmpower Framework Benchmark 介绍
TechEmpower 框架性能大比拼平台从 2013 年 3 月开始以来已经历经了 18 轮测试,参与这个平台的框架平台产品也从一开始的 24 种增加到今天的 659 种! 可以说这个平台已经是业界的标准性能测试平台,在 Web 框架性能测试领域的地位大概能和 PassMark 在 CPU 性能测试领域的地位相当.
TechEmpower 自身提供的棒图直观地呈现框架的 Throughput (吞吐量, 即每秒处理请求数): 
而 TechEmpower 在测试过程中还收集了其他类型的数据,包括:
- Latency (时延 - 从发起请求到收到响应的平均时间)
- Memory (内存占用)
- CPU (CPU 占用百分比)
2. TFB VIS 可视化网站
最近出现了一个新网站提供了另外几个数据的可视化呈现: https://ajdust.github.io/tfbvis/
这个网站打开是这样的:

默认排序是吞吐量,但可以通过点击列标题下面的空白部位切换排序列,比如点击红色箭头指向部位按照时延排序:

可以选择不同的 TFB 测试项目:

选择显示的框架:

遗憾的是目前该页面只能支持两个过滤条件:

3. ActFramework vs. Spring Framework
下面我们就来看看 Spring 和 Act 这两种框架的各方面对比:
3.1 JSON 测试

为了方便大家理解,这里解释一下图示的数据 (下面的图示就省去解释了):
| 框架 | 吞吐量 | 时延 | 内存占用 | CPU 占用 |
|---|---|---|---|---|
| Act | 1022k | 0.52ms | 2G | 53% |
| Spring | 130K | 5.29ms | 6G | 61 % |
总结: 没有涉及数据库的情况下, Spring 和 Act 相比
- 占用 3 倍的内存
- 吞吐量大约为 1/8
- 平均时延是 10 倍
3.2 Fortune 测试

总结: 在有数据库访问和后端页面生成的情况下, Spring 和 Act 相比
- 占用 3 倍内存
- 吞吐量大约为 1/7
- 平均时延大约为 5 倍
3.3 Query 测试

总结: 在多次查询(每个请求过程中处理查询数据库 20 次)的情况下, Spring 和 Act 相比
- 占用 3 倍内存
- 吞吐量大约为 1/5 到 1/2 (Spring WebFlux 在这个测试表现较好)
- 平均时延大约为 3 到 8 倍
3.4 Update 测试

总结: 在多次更新(每个请求过程中更新数据库 20 次)的情况下, Spring 和 Act 相比
- 占用 3 倍内存
- 吞吐量与平均时延和 Act 相当 (Spring WebFlux 在这个测试表现较好)
3.5 DB 测试

泉州SEO总结: 在单次查询(每个请求处理过程查询数据库 1 次)的情况下, Spring 和 Act 相比
- 占用 3 倍内存
- 吞吐量为 1/2 到 1/5
- 平均时延大约为 3 到 10 倍
TechEmpower 框架性能测试数据 - 新解读的更多相关文章
- 几种流行Webservice框架性能对比
1 摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有30多种,这对于开发者如何选择带来一定的疑惑.性能Webservice的关键要素,不同的框架性 ...
- 几种流行Webservice框架性能对比(转载)
1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑.性能Webservice的关键要素,不同的框架性能上存在较大差 ...
- TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹
TechEmpower 第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客:https://www.techempower.com/blog/2020/05/28/framewo ...
- TechEmpower 21轮Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱
自从2021年2月第20轮公布的测试以后,一年半后 的2022年7月19日 发布了 TechEmpower 21轮测试报告:Round 21 results - TechEmpower Framewo ...
- EntityFramework、Dapper vs 草根框架性能大比拼,数据库访问哪家强?
扯淡 当前市面上 ORM 很多,有跑车型的,如 Dapper,有中规中矩型的,如 Mybatis.Net,也有重量型的,如 EntityFramework 和 NHibernate,还有一些出自草根之 ...
- [java]序列化框架性能对比(kryo、hessian、java、protostuff)
序列化框架性能对比(kryo.hessian.java.protostuff) 简介: 优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Pro ...
- 几种流行Webservice框架性能对照
转自[http://blog.csdn.net/thunder4393/article/details/5787121],写的非常好,以收藏. 1 摘要 开发webservice应用程序中 ...
- EntityFramework、Dapper vs 草根框架性能
EntityFramework.Dapper vs 草根框架性能 扯淡 当前市面上 ORM 很多,有跑车型的,如 Dapper,有中规中矩型的,如 Mybatis.Net,也有重量型的,如 Entit ...
- java web框架发展的新趋势--跨界轻型App
“跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...
随机推荐
- tornado和vue的模板冲突解决方法
tornado和vue的模板冲突解决方法 Vue的插值表达式和tornado的模板都为一对花括号,可以通过修改vue的插值表达式的符号来解决这个问题,具体方法如下: var vm = new Vue( ...
- windows driver 分配内存
UNICODE_STRING str = {0}; wchar_t strInfo[] = {L"马上就是光棍节了"}; str.Buffer = (PWCHAR)ExAlloca ...
- sql拆分列 时间拆分 日、月、年
我想 查看今日访问人数 需要分组查询 就得 时间拆分 这两天百度 方法有很多 substring ... 但是 我这一列 是时间类型: 可以直接用 DATEPART() 函数用于返回日期/时间的单独部 ...
- The hierarchy of the type is inconsistent
原因:我看到有一个interface的java类里面import了一个没有用到的类,手贱,把这个接口里面引用了但是没有没有用到的类删掉了, 结果这个接口的子类用到了,统统报标题上的错误.只要把删掉的改 ...
- rdlc报表带参数打印
1.新建rdlc文件报表 2.选中rdlc文件=>视图=>报表资料 添加几个参数,如图 设计报表页面 int WaitNum = this.queueDTOs.Where(m=>m. ...
- vs密匙
Visual Studio 2019(VS2019) 企业版 Enterprise 激活码:BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2017(VS201 ...
- HZNU-ACM寒假集训Day3小结 搜索
简单搜索 1.DFS UVA 548 树 1.可以用数组方式实现二叉树,在申请结点时仍用“动态化静态”的思想,写newnode函数 2.给定二叉树的中序遍历和后序遍历,可以构造出这棵二叉树,方法是根据 ...
- python人脸识别项目face-recognition
该项目基于Github上面的开源项目人脸识别face-recognition,主要是对图像和视频中的人脸进行识别,在开源项目给出的例子基础上对视频人脸识别的KNN算法进行了实现. 0x1 工程项目结构 ...
- POJ - 3661 Running(dp---背包)
题意:Bessie要运动N分钟,已知每一分钟可以跑的距离,每一分钟可选择跑或者不跑,若选择跑,疲劳度加1,但疲劳度不能超过M:若选择不跑,则每过一分钟,疲劳度减1,且只有当疲劳度减为0时可以继续跑.求 ...
- C++ 操作数据库类
#pragma once #include <string> #include <windows.h> #include <algorithm> #include ...