文档章节

ActFramework 在 TEB R14 中击败 Spring

罗格林
 罗格林
发布于 2017/05/11 13:54
字数 1023
阅读 1933
收藏 11
点赞 17
评论 17

注意 TechEmpower Framework Benchmark R15 现已经推出: 其结果可参见 https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=json&l=hra0e7&c=4&o=4

TFB 自从 R15 之后已经开始自动迭代测试, 未公开的测试结果可以从 https://tfb-status.techempower.com/ 拿到,

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

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

© 著作权归作者所有

共有 人打赏支持
罗格林

罗格林

粉丝 254
博文 38
码字总数 37360
作品 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 吗? :grin:
关注了,但懒得说,哈哈
grail
grail
很nb的样子
G
Genko
壮哉ACT的,厉害了我的哥@罗格林 :blush:
罗格林
罗格林
亮点都在最后, 居然就没有人关注大 PHP 吗? :grin:
柳暗花明_托马斯
Act这次整体表现很不错,性能方面大家可以放心了。再把文档和功能完备性仔细打磨, 可以和spring掰掰手腕了。
Act starter 1.8.8.4 发布,更完善的 E2E 自动化测试方案

act-starters-1.8.8.4 基于最新的 act-1.8.8-RC8 版本, 提供了多个插件的更新, 包括: act-sql-common-1.4.0 act-jpa-common-1.4.0 act-ebean-1.7.0 act-ebean-java7-1.7.0 act-eclipselink-1......

罗格林 ⋅ 05/31 ⋅ 0

一场版本升级引发的性能血案 - 王者归来

上次老码农在一场版本升级引发的性能血案 - 之数据历险一文中讲得口吐白沫, 最后还是没有一个结果, 反而被 OSCer 们各种吐槽: "看得我快快精尽人亡了""看着一头雾水""一脸懵逼进来,一脸懵逼...

罗格林 ⋅ 06/04 ⋅ 0

Act-starter 1.8.8.0 强势发布 - 带来端到端自动化测试支持

Act-starter 1.8.8.0 是以 act-1.8.8-RC4 为核心的多个 starters 项目集合. 这个版本带来超过 40 项修改或增强: [act-e2e] 新的插件带来端到端自动化测试支持 [act-ebean]注册全局映射过滤器...

罗格林 ⋅ 05/14 ⋅ 0

t-io 3.0.3:TFB 压测被 actframework 碾压过后的简单抵抗

概述 上个版本有说tio参与了TFB测试,当时就说等着被大家看笑话,最新的测试结果出来了,果然排名比较靠后 1、json压测排名第176,每秒处理9.96万个http请求,知名国产框架act是排名第一,是...

talent-tan ⋅ 昨天 ⋅ 1

ActFramework有意向做成微服务的框架吗

@罗格林 你好,想跟你请教个问题:ActFramework有意向做成微服务的框架吗

超级大黑猫 ⋅ 05/28 ⋅ 0

actframework/actframework

ACT Framework News 18/Nov/2017 ACT 1.5.3 released 17/Nov/2017 ACT 1.5.2 released 15/Nov/2017 ACT 1.5.1 released 15/Nov/2017 ACT 1.5.0 released 07/Nov/2017 ACT 1.4.14 released 16......

actframework ⋅ 2017/02/16 ⋅ 0

ActFramework R1.4.0 带来 WebSocket 支持

ActFramework R1.4.0 发布了,R1.4.0版最重要的更新是 WebSocket 的支持 #17 WebSocket 支持 ActFramework 终于支持 WebSocket 了 聊天室应用: @WsAction("msg") public void onMessage(Stri......

罗格林 ⋅ 2017/06/13 ⋅ 3

OSCHINA 问答合集[2]:我有一套高峰期每秒钟约有 1 万人下单的系统,遇到了关于 Java 高并发的问题

开源中国问答区新栏目“OSCHINA 问答合集”上线啦,本期收录了 5 月高热度的问题及回复(吐槽),希望能让你有所收获~! 本期问答合集收录的问题,动辄就是“千万”级别的场景,这让大家“面...

局长 ⋅ 06/13 ⋅ 0

ActFramework 1.2.0 - 代码简洁之道上新的里程碑

ActFramework 是一个功能强大易用的 Java 全栈 Web 开发框架. 依托于 undertow 提供的网络层服务, ActFramework 摈弃了老式难用的 Servlet 框架, 并提供了开发时热加载特性, 非常便于开发. A...

罗格林 ⋅ 2017/04/25 ⋅ 16

OpenJ9 和 HotSpot 的对比 Part 1

OpenJ9 和 IBM J9 是来自默认 Oracle HotSpot JVM 的不同 JVM 实现。使用现代的 adoptopenjdk 预置 Docker 镜像,你可以轻易地切换和测试不同的组合,并且可以为你选择合适的 JVM。 这个传言...

oschina ⋅ 05/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

中标麒麟(龙芯版)7.0优盘安装

########################################## 制作U盘安装盘: 1.准备U盘: PMON环境下U盘必须格式化成ext3; 昆仑固件环境下可以格式化成ext3,ext4 2.把整个镜像 xxx.iso 复制到U盘下面 3....

gugudu ⋅ 21分钟前 ⋅ 0

老司机写的大数据建模五步走

本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。 01 第一步:选择模型或自定义模式 这是建模的第一步,我们需要基于业务问题,来决定可以选择哪些可用的模型。 比如,如果要预...

gulf ⋅ 30分钟前 ⋅ 0

PacificA 一致性协议解读

PacificA 的 paper 在 08 年左右发出来的,比 Raft 早了 6,7 年。 在 PacificA 论文中,他们强调该算法使用范围是 LAN (Local Area Network),讲白了就是对跨机房不友好。 不管是 ZAB,Raf...

黑客画家 ⋅ 32分钟前 ⋅ 0

盘符图标个性化

设置自己的专属盘符图标 准备ico格式的图片文件一个,在根目录下创建autorun.inf文件 文件内容 [Autorun]icon=logo.ico 重新启动或者插拔U盘即可看到结果...

阿豪boy ⋅ 33分钟前 ⋅ 0

Windows下QQ聊天记录中图片的默认存放位置

Windows下QQ聊天记录中图片的默认存放位置在设置中是没有说明的。 实测位置在:D:\Documents\Tencent Files\974101467\Image 其中: “974101467”为对应的QQ号; “C2C”为个人之间的聊天图...

临江仙卜算子 ⋅ 39分钟前 ⋅ 0

GC 的三种基本实现方式

参考资料《代码的未来》(作者: [日] 松本行弘)。 由于并非本人原著(我只是个“搬运工“),SO 未经本人允许请尽情转载。 另外个人像说明一下这里所说的GC指泛指垃圾回收机制,而单指Jav...

xixingzhe ⋅ 40分钟前 ⋅ 0

Android双击退出

/** * 菜单、返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode......

王先森oO ⋅ 44分钟前 ⋅ 0

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 50分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 53分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 57分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部