原 荐 ActFramework 在 TEB

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

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

在这个测试中 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

在这个测试中 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

  • 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

这个测试 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

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

参考

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

关注 PHP

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏纯洁的微笑

从架构演进的角度聊聊Spring Cloud都做了些什么?

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本篇主...

3855
来自专栏程序人生 阅读快乐

Spring+MYBatis企业应用实战.pdf

《Spring+MyBatis企业应用实战》介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis。其中Spring 的版本为4.2...

1694
来自专栏程序员宝库

从 Spring Cloud 看一个微服务框架的「五脏六腑」

Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件。

1342
来自专栏Java技术栈

微服务为什么选Spring Cloud?

现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,本系列文章主要介绍这些技术中的翘楚——...

1524
来自专栏dalaoyang

SpringCloud学习目录

Spring Cloud直接建立在Spring Boot的企业Java创新方法上,它通过实现经过验证的模式来简化分布式、微服务风格的体系结构,从而为您的微服务带...

6225
来自专栏哲学驱动设计

企业 SOA 设计(1)–ESB 设计

最近为公司完成了一个 ESB 的设计。下面简要说明一下具体的设计方案。 企业 SOA 整体方案 在前一篇《SOA、ESB、NServiceBus、云计算 总结》...

2336
来自专栏JAVA高级架构

Spring Cloud概述

1.1 传统的应用 1.1.1 单体应用 在此之前,笔者所在公司开发Java程序,大都使用Struts、Spring、Hibernate(MyBatis)等技...

4205
来自专栏精讲JAVA

身为Java程序员,这些开源工具你一定要学会

本文主要介绍Java程序员应该在2018年学习的一些基本和高级工具。如果你是一位经验丰富的Java开发人员,拥有5到10年的经验,你可能对这些工具很熟悉,但如果...

1223
来自专栏cloudskyme

给sshpermissions加入工作流

第一章 引言 1.1 编写目的 在sshpermissions中加入工作流部分,主要整合的是jbpm4.4。并且将流程设计器和业务做了初步的整合。同时也修改了前...

38110
来自专栏技术小黑屋

一个关于安卓打包提速的小改进

作为App开发者,打包和发包是经常要进行的工作。鉴于国内的特殊情况,造就了不可胜举的应用市场。为了便于跟踪统计必要的数据信息,我们通常会针对每个市场都进行打包。...

1004

扫码关注云+社区

领取腾讯云代金券