文档章节

TechActFramework 在 TEB R14 中击败 Spring

罗格林
 罗格林
发布于 2017/05/11 13:54
字数 1064
阅读 2573
收藏 13

注意

TechEmpower Benchmark 是业界公认的 web 框架/平台技术的PK场,刚刚发布的第14轮测试报告中比较了超过 140 中不同的语言/平台/框架技术,可以说这就是一个 Web 技术的嘉年华(Canival)。在第14轮中 TechEmpower 对所有的框架在同一个环境下实施了 6 种测试。这里我不打算罗列所有的 140 种技术,我将会比较所有 JVM 平台(包括 Java, Scala, Kotlin, Groovy 和 Closure) 上的全栈 Web 框架在本次性能测试中的结果:

非全栈框架或平台(比如 undertow, netty等) 不在下面的比较结果中

JSON Serialization 测试结果比较

数据来源: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=json&l=6nq2qj&c=6

image

ActFramework 在这个测试中以每秒 334,157 次的吞吐率排行第 4. 业界主流框架 Spring 的测试结果为每秒 22,228 次落在排行榜尾部

Single Query 测试结果比较

数据来源: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=db&l=6nq2qj&c=6

image

在这个测试中 ActFramework 派出了五名大将:

  • act-jdbc-pgsql (ActFramework 通过 RAW JDBC 访问 PostgreSQL 数据库): 每秒 77,650 次,排行第 5
  • actframework-pgsql (ActFramework 通过 BeetlSQL ORM 访问 PostgreSQL 数据库): 每秒 73,185
  • act-ebean-pgsql (ActFramework 通过 Ebean ORM 访问 PostgreSQL 数据库): 每秒 71,029
  • actframework-mongo (ActFramework 通过 Morphia 访问 MongoDB 数据库): 每秒 66,664
  • actframework-mysql (ActFramework 通过 Ebean ORM 访问 MySQL 数据库): 每秒 53,800
  • Spring (通过 Spring Data 访问 MySql 数据库): 每秒 16,204

Multiple Queries 测试结果比较

数据来源:https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=query&l=6nq2qj&c=6

image

在这个测试中 act 和 PostgreSQL 的配合依旧十分出色,但 act 和 MySQL 的配合表现则不能让人满意:

  • act-jdbc-pgsql (ActFramework 通过 RAW JDBC 访问 PostgreSQL 数据库): 每秒 7,696 次,排行第 3
  • act-ebean-pgsql (ActFramework 通过 Ebean ORM 访问 PostgreSQL 数据库): 每秒 7,392
  • actframework-pgsql (ActFramework 通过 BeetlSQL ORM 访问 PostgreSQL 数据库): 每秒 7,135
  • actframework-mongo (ActFramework 通过 Morphia 访问 MongoDB 数据库): 每秒 4,618
  • Spring (通过 Spring Data 访问 MySql 数据库): 每秒 2,415
  • actframework-mysql (ActFramework 通过 Ebean ORM 访问 MySQL 数据库): 每秒 2,113

Fortunes 测试结果比较

数据来源:https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=fortune&l=6nq2qj&c=6

image

  • act-jdbc-pgsql (ActFramework 通过 RAW JDBC 访问 PostgreSQL 数据库): 每秒 61,709 次,排行第 4
  • act-ebean-pgsql (ActFramework 通过 Ebean ORM 访问 PostgreSQL 数据库): 每秒 59,040
  • actframework-mysql (ActFramework 通过 Ebean ORM 访问 MySQL 数据库): 每秒 50,492
  • actframework-pgsql (ActFramework 通过 BeetlSQL ORM 访问 PostgreSQL 数据库): 每秒 33,163
  • actframework-mongo (ActFramework 通过 Morphia 访问 MongoDB 数据库): 每秒 25,720 次 (有点差强人意)
  • Spring (通过 Spring Data 访问 MySql 数据库): 每秒 24,047

Data Updates 测试结果比较

数据来源: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=update&l=6nq2qj&c=6

image

这个测试 PostgreSQL 依然坚挺, 而 MySQL 和 MongoDB 方面的表现都不理想

  • act-jdbc-pgsql (ActFramework 通过 RAW JDBC 访问 PostgreSQL 数据库): 每秒 1,978 次,排行第 2
  • actframework-pgsql (ActFramework 通过 BeetlSQL ORM 访问 PostgreSQL 数据库): 每秒 1,851
  • act-ebean-pgsql (ActFramework 通过 Ebean ORM 访问 PostgreSQL 数据库): 每秒 1,689
  • Spring (通过 Spring Data 访问 MySql 数据库): 每秒 897
  • actframework-mongo (ActFramework 通过 Morphia 访问 MongoDB 数据库): 每秒 633
  • actframework-mysql (ActFramework 通过 Ebean ORM 访问 MySQL 数据库): 每秒 432

Plaintext 测试结果比较

数据来源: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=plaintext&l=6nq2qj&c=6

image

和第一个 JSON 测试一样, Plaintext的测试不需要数据库, ActFramework 在这个测试中表现也不错, 每秒 601,390 次, 排名第 3. Spring 的成绩是每秒 128,577 次.

参考

所有参加 TechEmpower 测试的源代码都可以在 TechEmpower Benchmark 的 Github 项目 中找到.

关注 PHP

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻

© 著作权归作者所有

罗格林

罗格林

粉丝 296
博文 43
码字总数 41912
作品 4
其他
架构师
私信 提问
加载中

评论(17)

罗格林
罗格林

引用来自“红白机”的评论

请问一下楼主,我有一个小VPS,512MB内存,2核CPU,跑ACT没什么问题吧?这个微小的配置能顶得住么?访问量日独立IP3000。

引用来自“罗格林”的评论

依赖于你的应用规模,框架本身的消耗很小。如果你跑 SpringMVC 没有问题,那跑 ACT 肯定没有问题

引用来自“红白机”的评论

原应用是跑在大PHP的LAMP环境下的。看了上面的测试结果,好像ACT与PGSQL比较配啊。如果用ACT的话,我也考虑迁移到PGSQL上来。看到ACT也支持websocket就更想换了。原来的PHP的基于workerman来开发。
TechEmpower 的测试显示 pgsql 的表现普遍比 MySQL 好,这个跟测试类型和环境设置相关。你不一定一定要换数据库。如果一定要换的话,没有事务需求的情况下,宁愿换成 MongoDB,开发效率会提高很多
红白机
红白机

引用来自“红白机”的评论

请问一下楼主,我有一个小VPS,512MB内存,2核CPU,跑ACT没什么问题吧?这个微小的配置能顶得住么?访问量日独立IP3000。

引用来自“罗格林”的评论

依赖于你的应用规模,框架本身的消耗很小。如果你跑 SpringMVC 没有问题,那跑 ACT 肯定没有问题
原应用是跑在大PHP的LAMP环境下的。看了上面的测试结果,好像ACT与PGSQL比较配啊。如果用ACT的话,我也考虑迁移到PGSQL上来。看到ACT也支持websocket就更想换了。原来的PHP的基于workerman来开发。
罗格林
罗格林

引用来自“红白机”的评论

请问一下楼主,我有一个小VPS,512MB内存,2核CPU,跑ACT没什么问题吧?这个微小的配置能顶得住么?访问量日独立IP3000。
依赖于你的应用规模,框架本身的消耗很小。如果你跑 SpringMVC 没有问题,那跑 ACT 肯定没有问题
红白机
红白机
请问一下楼主,我有一个小VPS,512MB内存,2核CPU,跑ACT没什么问题吧?这个微小的配置能顶得住么?访问量日独立IP3000。
Tom-Lin
Tom-Lin
谁知道 测试用的 pgsql 和 mysql 的版本 分别 是 什么?
闲大赋
闲大赋

引用来自“罗格林”的评论

亮点都在最后, 居然就没有人关注大 PHP 吗? 😁
关注了,但懒得说,哈哈
grail
grail
很nb的样子
G
Genko
壮哉ACT的,厉害了我的哥@罗格林 😊
罗格林
罗格林
亮点都在最后, 居然就没有人关注大 PHP 吗? 😁
柳暗花明_托马斯
Act这次整体表现很不错,性能方面大家可以放心了。再把文档和功能完备性仔细打磨, 可以和spring掰掰手腕了。
Beetl 2.7.0 发布,Java 模板引擎

Beetl 2.7.0 发布了,本次发布包含了多项功能提升,来自于多位开源爱好者的代码捐助,同时修复了文档的若干错误 #279 WebServlet存取名字使用常量,而不是Servlet #278 使用Spring MVC 前缀给...

闲大赋
2016/10/27
1K
9
Beetl 2.7.3 发布,Java 模板引擎

Java 模板引擎 Beetl 2.7.3 发布了,此次发布主要是功能提升: #15(gitosc) spring+ undertow 集成的bug修复 #14(gitosc) include 取消主动flush #282(github) 非必要,不检测set方法 #281(...

闲大赋
2016/11/28
1K
8
spring为什么要推荐使用thymeleaf

这是几个模版引擎的测试结果,thymeleaf的测试结果对比简直是糟糕,既然如此为什么spring还要推荐使用它, ”Thymeleaf 3’s engine has been rewritten from scratch with the main focus ...

Crissmagic
2016/09/06
17.4K
16
Beetl 2.5.2 发布,Java 模板引擎

Beetl 2.5.2 发布了,改进内容: # 258 javabean 规范第二条支持bug 修复 # 257 错误提示,完善缺少符号的错误提示 Beetl介绍 Beetl 大小720K,相对于其他java模板语言,具有功能齐全,语法直...

闲大赋
2016/09/12
1K
13
Beetl 2.5.0 发布,Java 模板引擎

Beetl 2.5.0 发布了,更新如下: #250 提供一个简便的定制化占位符输出的方法 #249 bug修复,占位符结束符号是2个字符的时候,html标签解析出错 Beetl介绍 Beetl 大小720K,相对于其他java模...

闲大赋
2016/07/04
3.6K
20

没有更多内容

加载失败,请刷新页面

加载更多

Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
13分钟前
0
0
Java设计模式之外观模式(门面模式)

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口...

须臾之余
30分钟前
0
0
mysql免安装版,服务无法启动没有抱任何错误

1.解压 2.新建my.ini [mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, e......

榴莲黑芝麻糊
51分钟前
0
0
Qt编写安防视频监控系统3-通道交换

一、前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟...

飞扬青云
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部