ActFramework 在 TechEmpower benchmark R14 中的表现
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 项目 中找到.