前文回顾
之前做过一个测评,是用Go语言的iris框架与Java的SpringBoot框架做了个性能对比,测试了三项,结果SpringBoot全线溃败,详情见:
MakeLoveTech:Go语言现在为什么这么火?Go+Iris vs Java+SpringBoot 为您揭晓答案zhuanlan.zhihu.com那个结果很容易给人一个错觉:是java老了吗?
当然不是!Java界的性能担当根本就不是Spring,只是因为国内用java的web框架主要是Spring,我们才拿它来测……
本次我们就请出java界的性能担当——Vert.x,跟Iris再比一次
这次的结果会比较有说服力
因为iris在官网自称自己是 the fastest web framework,请注意:它并没有加任何修饰词,比如go语言中最快的,而是直说是最快的
iris在自己的官网声称自己是最快的web框架
刚好网上还没有把iris和Vert.x放在一起做性能测试的,正好借这个机会大家一起看一看
如果Vert.x能快过Iris的话
就说明java的生态里也有超高性能的web框架,而且也可以间接证明java仍然宝刀未老
测试的技术栈
Go1.14.3 + iris12.1.8 + xorm0.7.9 Vs Java11 + Vert.x3.9.1 + Reactive MySql Client3.9.1
测试项目
- 返回字符串
- 返回Json
- 数据库全量查询
注:每个项目各测三次
测试工具
Wrk:超高性能的命令行压测工具
测试命令
wrk –t12 –c400 –d10s
结果参考指标
Requests/Second
测试环境
- 操作系统:Ubuntu Server 18.04 on Vmvare
- 配置:4核/8G
- 数据库:MySql 8.0.20
测试结果
返回字符串的性能测试中,Java的Vert.x小胜Go的iris
返回json的性能测试中,Java的Vert.x小胜Go的iris
数据库全量查询的性能测试中,Java的Vert.x小胜Go的iris
结果汇总:Java的Vert.x小胜Go的Iris
通过上面的测试,大家也都看到了,java的世界里也有超高性能的web框架,而且java仍然宝刀未老
这两次的测试给我们的启示
不要因为某个语言的某个框架快过了另一个语言的某个框架,就上升到某个语言比某个语言快
其实java、go,以及C#,这三门语言的性能都在一个档次上,在不同的场景下互有胜负,谁也没法完全压制谁
另外……
Spring官方也意识到Spring在性能上的不足,所以也推出了自己的新技术栈——Spring WebFlux,只是现在生态还没建立起来,建议大家先不要急于用于生产环境,现阶段可以先学习着、储备一下
打个小广告……
如果大家对Vert.x、Iris、Spring Webflux感兴趣,想学习一下,可以直接点击下面链接观看
深入浅出Vert.x 第一季 vertx快速入门【高性能下一代异步、非阻塞、响应式JavaWeb框架、天生支持分布式微服务的技术、同Akka、Actix】_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com都是免费的公益视频哦,如果大家觉得好,欢迎点赞、收藏、关注、转发……