go语言是的使用为什么一直在降低 go语言为什么火不起来_go语言是的使用为什么一直在降低


Go语言在国内有多火?

现在市面上的大厂:华为、阿里巴巴、腾讯、百度、拼多多、京东、字节跳动、小米、美团、360……已经没有不用go语言的了……

而且,不仅如此

很多公司在重构自己之前的系统时,都不约而同地选择了go语言作为主要技术栈,而没有用在国内更成熟的java,比如B站、知乎、罗辑思维……

这难免让人困惑

从生态上来讲,java在国内的生态建设应该略胜go语言才对啊,为什么那么多公司或项目都“舍近求远”地使用看起来生态还不是很成熟的go语言呢?

所以这次

我们就从纯技术的角度做个测评,用Java生态里国内最常用的SpringBoot框架对比Go生态里国内用得比较多的iris框架,来做个性能对比。

具体技术栈

java11 + SpringBoot2.3 + SpringDataJpa2.3 vs go1.14 + iris12 + xorm0.7.9

测试项目

  • 返回字符串
  • 返回json
  • 数据库全量查询(共12条数据)

注:每个项目各测3次

测试工具

wrk:超高性能的压力测试工具

测试命令

wrk -t12 -c400 -d10s

测试环境

  • Ubuntu Server 18.04 on Vmvare
  • 配置:4核/8G
  • 数据库:MySql 8.0.20

测试结果


go语言是的使用为什么一直在降低 go语言为什么火不起来_go语言_02


返回字符串性能对比,iris性能是SpringBoot的3倍多


go语言是的使用为什么一直在降低 go语言为什么火不起来_go语言是的使用为什么一直在降低_03


返回json性能对比,iris性能是SpringBoot的3倍多


go语言是的使用为什么一直在降低 go语言为什么火不起来_性能对比_04


数据库全量查询性能对比,iris性能是SpringBoot的4倍多

结论

Iris完胜SpringBoot

通过上面的测试,大家应该也可以从技术上有一个概念,为什么Spring的生态已经很成熟,那么多的公司或项目却没用它,而是选用go语言作为技术栈

但是,请注意

这并不是说go就比java快,要知道java世界的性能担当并不是Spring,只是因为国内用Spring的公司比较多,所以本次测试才用Spring做对比

下期预告

下一期我们会用java世界里的高性能web框架——Vert.x,与go的iris再比一次,详情见:

MakeLoveTech:Go+iris吊打Java+SpringBoot,是Java老了吗?且慢,Vert.x有话要说zhuanlan.zhihu.com

go语言是的使用为什么一直在降低 go语言为什么火不起来_java_05


本次测试全程都用视频录下来了,详情请点击:

Golang(go语言)为什么这么火?Java+SpringBoot+SpringDataJpa vs go+iris+xorm 性能对比告诉您答案【软件测评】_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com

go语言是的使用为什么一直在降低 go语言为什么火不起来_bilibili go框架_06