基于docker容器环境下的php/swoole/golang 性能小测试

最近在看swoole的内容,周末下了easyswoole这个框架,准备好好研究研究,当把环境都搭好之后,一时兴起,便想作一番性能的对比测试,以下是大致细节:

首先,开发环境是mac+docker,所有的运行环境都保持为docker容器环境,docker的配置没有给太高,2核1G:

基于docker容器环境下的php/swoole/golang 性能小测试

接下来是测试工具,以老生常谈的ab压测工具做测试,mac os上自带了apache,可以直接运行ab工具命令:

ab -n 1000 -c 100 host

-n 是指总共请求数,-c是指并发请求数,在这里统一以1000个请求,100个并发作为测试条件

相关运行环境如下:

php:7.3.3

nginx:1.15.7

golang:1.16.6

swoole:4.5.2

laravel:5.6

 1、纯php+nginx

纯php用的是一个docker环境的项目(dnmp)的入口文件index.php

基于docker容器环境下的php/swoole/golang 性能小测试

可以看到纯php的每秒处理的请求数(RPS)是156左右

2、easyswoole

docker本地开发环境我是用docker-compose进行编排,因为swoole是基于php, 但无法兼容php-fpm,所以我另外起一个容器,配置方面跟php的编排大部分是一样的

基于docker容器环境下的php/swoole/golang 性能小测试

然后直接docker-compose up -d 就可以运行swoole服务啦,不得不说,docker-compose真是一个好助手,一支穿云箭,千军万马来相见的感觉

成功运行easyswoole的页面:

基于docker容器环境下的php/swoole/golang 性能小测试

文风似乎有点跑偏了,这是一篇测试博文,不是swoole教程呢

基于docker容器环境下的php/swoole/golang 性能小测试

可以看到在php7.3+swoole4.5.2的加持下,easyswoole每秒处理的请求数达到了360左右,比纯php上升了1倍以上

3、laravel

基于docker容器环境下的php/swoole/golang 性能小测试

laravel这里用的是一个后台管理项目,可以看到每秒处理的请求数只有39左右,非常的拉垮。因为laravel是一个生态非常完善的框架,也相对来说会比较臃肿,引用的文件太多了,测出来的结果也是预料之中的

4、golang(goframe+业务)

为了保证golang的测试环境和php保持一致,在这里我也用docker-compose搭建了容器化的golang:

基于docker容器环境下的php/swoole/golang 性能小测试

在这里用了 github 上的一个开源项目:gf-vue-admin,基于goframe框架,在这里也是用入口文件去测试:

基于docker容器环境下的php/swoole/golang 性能小测试

 可以看到每秒处理的请求数是152左右,比swoole少了一倍以上,相当于纯php的性能。这个结果还是比较意外的,目前也是抱着学习的想法去了解这个项目,可能这个项目相对于无业务逻辑的demo来说算是重一点吧

还是有点不死心, golang是出了名的高性能,理应有更漂亮的数据。那我再试试gin,看看战绩如何

5、golang(gin+无业务)

首先写段简单的测试代码:

基于docker容器环境下的php/swoole/golang 性能小测试

然后在docker-compose.yml中的 golang服务增加暴露8899这个端口:

基于docker容器环境下的php/swoole/golang 性能小测试

再进入容器

基于docker容器环境下的php/swoole/golang 性能小测试

as expected:

基于docker容器环境下的php/swoole/golang 性能小测试

 面对疾风吧:

基于docker容器环境下的php/swoole/golang 性能小测试

众望所归,真的是马中赤兔,go中gin。可以看到每秒处理的请求数达到了612左右,比easyswoole的性能提升将近1倍,当然,这只是一个无任何业务逻辑的demo,但是,管中窥豹,可见一斑。2核1G的环境跑出这样的数据算是天花板了吧?

以上是本次性能测试的全部内容,最后想引用邓小平爷爷的一句话,无论是黑猫白猫,能抓老鼠的就是好猫。本次测试没有涉及到具体的业务场景,后端性能瓶颈其实主要是来源于数据库方面,语言层面,用哪种语言,哪种框架,哪种架构,只要能满足业务场景,就是对的。

文章版权声明

 1 原创文章作者:小郑,如若转载,请注明出处: https://www.52hwl.com/35376.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年7月15日 下午1:15
下一篇 2023年7月15日 下午1:16