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 框架性能测试数据 - 新解读的更多相关文章

  1. 几种流行Webservice框架性能对比

    1      摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有30多种,这对于开发者如何选择带来一定的疑惑.性能Webservice的关键要素,不同的框架性 ...

  2. 几种流行Webservice框架性能对比(转载)

    1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑.性能Webservice的关键要素,不同的框架性能上存在较大差 ...

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

    TechEmpower 第19轮编程语言框架性能排行榜2020年5月28日正式发布,详见官方博客:https://www.techempower.com/blog/2020/05/28/framewo ...

  4. TechEmpower 21轮Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱

    自从2021年2月第20轮公布的测试以后,一年半后 的2022年7月19日 发布了 TechEmpower 21轮测试报告:Round 21 results - TechEmpower Framewo ...

  5. EntityFramework、Dapper vs 草根框架性能大比拼,数据库访问哪家强?

    扯淡 当前市面上 ORM 很多,有跑车型的,如 Dapper,有中规中矩型的,如 Mybatis.Net,也有重量型的,如 EntityFramework 和 NHibernate,还有一些出自草根之 ...

  6. [java]序列化框架性能对比(kryo、hessian、java、protostuff)

    序列化框架性能对比(kryo.hessian.java.protostuff) 简介:   优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Pro ...

  7. 几种流行Webservice框架性能对照

     转自[http://blog.csdn.net/thunder4393/article/details/5787121],写的非常好,以收藏. 1      摘要 开发webservice应用程序中 ...

  8. EntityFramework、Dapper vs 草根框架性能

    EntityFramework.Dapper vs 草根框架性能 扯淡 当前市面上 ORM 很多,有跑车型的,如 Dapper,有中规中矩型的,如 Mybatis.Net,也有重量型的,如 Entit ...

  9. java web框架发展的新趋势--跨界轻型App

    “跨界(cross over)在汽车界已然成风,将轿车.SUV.跑车和MPV等多种不同元素融为一体的混搭跨界车型,正在成为汽车设计领域的新趋势.从个人而言,当包容.多元的审美要求和物质要求越来越强烈时 ...

随机推荐

  1. 《thinkphp》二、创建实例

    1.目录结构 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─confi ...

  2. HDU 4662 MU Puzzle(找规律)

    题意:问是否能把MI通过以下规则转换成给定的字符串s. 1.使M之后的任何字符串加倍(即,将Mx更改为Mxx). 例如:MIU到MIUIU.2.用U替换任何III.例如:MUIIIU至MUUU.3.去 ...

  3. 把Ubuntu系统自带的源修改为国内的源,中科大源链接:https://mirrors.ustc.edu.cn/repogen/

    https://mirrors.ustc.edu.cn/repogen/ Tips: 可通过 URL 的形式直接下载配置. 例如: https://mirrors.ustc.edu.cn/repoge ...

  4. Egret Engine 2D - Get Started

    Get Started     Egret 也支持在命令行完成编译,运行,发布等操作.在下面的教程中会穿插对应操作的命令行代码.   可新建游戏项目,也可建eui项目   这里包含默认的几个库,egr ...

  5. PHP ~ 设置和读取 Cookie

    一,设置 Cookie setcookie("user",$user,time()+3600);     // user 为用户名,$user 为变量的值   二,读取 Cooki ...

  6. js中数字的4种遍历方式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  7. buildroot经验

    1.可以运行bulilroot下面的孙可编写的build.sh文件,自动配置和编译 2.如何添加要下载和编译的包? 如要下载和编译libevent, 可以通过make menuconfig, 然后搜索 ...

  8. 阿里巴巴技术总监全解中台架构19页ppt

    //初创时,快速上线 单体架构至少撑了3年 //分布式,中间件基座 //平台化,内部是简单服务,对于业务侧就是快速上线 //平台化之后由于多平台协作问题,再次出现问题: 效率仍然不能匹配业务发展之需要 ...

  9. VSFTP 连接时425 Security: Bad IP connecting.报错-----解决方法

    当登录FTP时候出现这个报错时.是因为PASV模式的安全检查是开启的(默认是开启的)  ftp> ls227 Entering Passive Mode (172,16,101,33,35,58 ...

  10. Android自定义View——贝塞尔曲线实现水波纹效果

    我们使用到的是Path类的quadTo(x1, y1, x2, y2)方法,属于二阶贝塞尔曲线,使用一张图来展示二阶贝塞尔曲线,这里的(x1,y1)是控制点,(x2,y2)是终止点,起始点默认是Pat ...