我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

很久没关注 workman 了。昨天一个好友提了一下 workman ,然后看到 workman 官网的压测排行,就装了跑一下。我是没想到跑了 10w qps。

我用的 macbook pro m1 16/256 测试的。
php是brew直接装的 php7.4 。

印象中本机跑到10w上的只有 fasthttp 。 rust 和 java 的试了几个都没有跑到10w过。

语言版本 框架 附加条件 qps
go1.17 fasthttp - 15w+
go1.17 gin - 9w+
go1.17 iris - 8~9w+
php7.4 webman - 10w+
go1.17 fasthttp sqlite 3w+
go1.17 gin sqlite 3w+
php8.0 webman sqlite 5w+
go1.17 fasthttp log(一次请求10条log) 1.6w+
php8.0 webman log(一次请求10条log) 1.7w+

workman php7.4
我今天测试的workmanQPS(10w+)这么离谱吗

iris go 1.17
我今天测试的workmanQPS(10w+)这么离谱吗

gin go 1.17
我今天测试的workmanQPS(10w+)这么离谱吗

fasthttp go 1.17
我今天测试的workmanQPS(10w+)这么离谱吗

因为之前跑的 spring 和 actix-web 并不是多高。我就不在这贴出来了。不过 workman 跑的这个成绩我是挺吃惊。 欢迎大家讨论一下。


下午增加测试(下午的为 php8 下测试,其他不变)

fasthttp + db (gorm/sqlite)
我今天测试的workmanQPS(10w+)这么离谱吗

gin + db (gorm/sqlite)
我今天测试的workmanQPS(10w+)这么离谱吗

webman + db (default/sqlite)
我今天测试的workmanQPS(10w+)这么离谱吗
…. 不清楚为什么这个这么离谱

fasthttp + + 10log/q (每次请求记录10条log)
我今天测试的workmanQPS(10w+)这么离谱吗
风扇响了不知道有没有影响

webman + + 10log/q (每次请求记录10条log)
我今天测试的workmanQPS(10w+)这么离谱吗

我今天测试的workmanQPS(10w+)这么离谱吗

还挺稳定,而且性能上我是没想到纯php跑出来的成绩竟然和go在web api上不分伯仲。看到这个结果我是对手上的go代码陷入了深思:anguished:

顺便补一个 php 和 go fbnq 数列的计算对比吧
(win11 php8/go1.17 i7-8565U )

这里还有一个斐波那契数列递归,在数学运算上,go 和 php 不是一个量级 ,斐波那契数列对比。因为递归的斐波那契数列的时间复杂度是 n^2 所以在这种场景 php 未来还有很大进步空间。

语言 斐波那契数列递归所求第n个 时间 备注
GO 46 4S+ -
PHP 33 3S+ 由于该场景下php表现与go差异较大,所以减少php求的

php 和 go 的字符串对比

语言 字符串拼接 时间 备注
php . 拼接 5000000 次 3s+ -
go + 拼接 100000 次 27s+ 因为 go + 的拼接速度实在是太慢了,所以减少循环次数
go buf.WriteString 拼接 5000000 次 0.003s+ -

我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

php 字符串拼接 5000000 次

我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

go 用 + 进行字符串拼接 100000 (是上面的1/50次但是用时是上面的几十倍),(如果想要快一点go要用 bytes.Buffer
我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

go 用 buf.WriteString 处理字符串
我今天测试的workmanQPS(10w+)这么离谱吗(本地压测结果)

尺有所短,寸有所长

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 32

可惜没有多少人维护

8个月前 评论
JaguarJack 7个月前
滚球兽进化 (楼主) 8个月前

hyperf swof 现在都能做到10w qps

8个月前 评论
滚球兽进化 (楼主) 8个月前
失色天空 7个月前

试下fiber

7个月前 评论
滚球兽进化 (楼主) 7个月前

大佬测试一下 laravel + Roadrunner 这个呗!~ :+1:

7个月前 评论
滚球兽进化 (楼主) 7个月前

file 这个好像弄错了,gin 没业务逻辑9w QPS,加了sqlite不应该还是9w QPS

7个月前 评论
滚球兽进化 (楼主) 7个月前
李铭昕

其实单看性能,PHP一点都不差,至少对90%的公司来说。

开发速度,PHP绝对比 Go Java 一类快多了,所以中小公司,没有超高并发的场景,PHP 是完全可以胜任的。

不过 webman 能这么高的 qps 也是有原因的。。。

7个月前 评论
jcc123 7个月前
liziyu 7个月前
kolin 7个月前

php 7.4 webman + db (default/sqlite):
这项测试为啥会出现,User 文件正在reloading …. 你没有关闭监控文件那个进程?
出现这个提示,一般只有项目文件夹有文件更新,子进程给主进程发送了reload 信号。

关闭monitor 进程,就不会出现这个提示:
Laravel

建议:关闭这个进程,重新在测试一下!或许性能会更加高呢。

7个月前 评论
滚球兽进化 (楼主) 7个月前

国外rank网站 Web Framework Benchmarks Round20 www.techempower.com/benchmarks/#se...

file

7个月前 评论
Epona

实际用户 就2个在线, 有那么高的 qps 有啥用.jpg 😂

挑选合适的,顺手的工具就完事了。 不要迷信性能测试

7个月前 评论

之前在b站看一个up测fiber qps也是挺高的 但还是比rust差一点

7个月前 评论
滚球兽进化 (楼主) 7个月前
方向感 7个月前
滚球兽进化 (楼主) 7个月前
GDDD

我感觉这样的测试没啥意义,说明不了什么

7个月前 评论
滚球兽进化 (楼主) 7个月前
哪吒的狗腿子 5个月前
FlyingFish_1992 5个月前
保安

webman还是很强悍的

7个月前 评论

workman,swoole 很棒的,感觉市面上百分之85的公司做业务是ok的,定时器,分布式,性能,websocket,push

5个月前 评论

laravel怎么和workman结合做websocket应用,我看laravel文档的广播那节提到了laravel-websockets库,那个的性能是不是不如workman?

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!