一个web框架性能比较项目,包括:
- go + gin + gorm
- java + springboot + mybatis
- kotlin + quarkus + hibernate
- kotlin + vertx
- dotnet
- rust
本项目只是个玩票性质的web性能比较,专业的还是去看techempower的测试结果:
分别使用golang、java、kotlin的流行web框架,以及dotnet与rust,开发简单的HttpAPI应用,使用JMeter比较它们的性能表现。
- 数据库统一使用MySQL8,并使用相同database的相同表。
- HttpAPI实现相同的四个API: 单表插入、全表查询(1000件)、主键查询(1000件)、以及一个没有数据库读写的简单内存数据读取API。
语言、框架与工具及其版本信息如下:
- golang版本 : v1.17.5
- gin版本 : v1.8.1
- gorm版本 : v1.24.2
- java版本 : openJDK-17.0.3
- springboot版本 : 3.0.0
- mybatis-spring-boot-starter版本 : 3.0.1
- kotlin版本 : 1.7.21
- quarkus版本 : 2.15.1.Final
- hibernate版本 : 5.6.14.Final
- vertx版本 : 4.3.7
- JMeter版本 : 5.1.1
- dotnet版本 : 6.0.404
- rust版本 : 1.66.0
web-performance-comparison
├── db 数据库相关资源
├── deploy docker编排文件目录
├── jmeter JMeter测试计划与结果
├── web-pm-dotnet dotnet WEB测试项目
├── web-pm-gin go+gin+gorm WEB测试项目
├── web-pm-quarkus kotlin+quarkus+hibernate WEB测试项目
├── web-pm-rust rust WEB测试项目
├── web-pm-springboot java+springboot+mybatis WEB测试项目
└── web-pm-vertx kotlin+vertx WEB测试项目
具体的性能测试报告参考:
感谢aaavieri提供了以下web项目的实现:
web-pm-dotnet
web-pm-quarkus
web-pm-rust
web-pm-vertx
web-pm-vertx-java
Thanks to JetBrains for supporting open source projects.