据说 swoole 性能特别好,大家怎么看?

2020-08-01 17:03:42 +08:00
 fxjson

据说 swoole 性能挺好,大家有用在实际项目中吗?用在什么场景下呢?

7790 次点击
所在节点    PHP
38 条回复
components
2020-08-01 17:49:41 +08:00
jaynos
2020-08-01 18:11:00 +08:00
实际项目中在 websocket 上使用过 swoole,坑点还是有不少,选择的原因是着急上线+需要对接业务是 php 的。

碰到的坑点有 Table 需要传入 capacity,超出就删已有数据,可能还有实际容量达不到 capacity 指定的数量的问题。隐约记得还有内存可见性问题,通过 Timer 创建的任务不能访问到链接信息问题。最严重的还是一次莫名的线上事故,整个进程完全阻塞,呆呆的停在那里= =,coredump 之后紧急重启了,事后分析堵塞在 epoll_wait 上,具体就没细看了,加了个班直接迁移到 golang 上了= =
agdhole
2020-08-01 18:17:52 +08:00
安装麻烦,使用麻烦
有这功夫直接换语言
z5864703
2020-08-01 18:24:24 +08:00
用 swoole 跑长链接数据转发业务,性能还行吧,4 核 8G 单机 40 万链接。但是坑比较多,只有趟过了才知道
janxin
2020-08-01 18:32:05 +08:00
有折腾的时间,都换上 java 了…
nguoidiqua
2020-08-01 18:51:10 +08:00
对其没啥兴趣
shanghai1998
2020-08-01 19:15:22 +08:00
测试过,单跑代码比 java 都快
但是链接数据库、链接 redis,比 java 慢的多,慢 50%左右,我怀疑是底层原生扩展不行
但是比 pfm 方式有质的提升,而且不占用 tcp 链接了
KasuganoSoras
2020-08-01 20:15:42 +08:00
挺好,之前用 Swoole 写了个数据库查询的接口,配合 Redis 缓存,有连接池。后来这接口给人 CC 攻击了,4 核 4G 内存的服务器,跑上了 26w QPS,宽带先打满了,机器却没死机,攻击一停秒恢复
wspsxing
2020-08-01 20:21:27 +08:00
rustgo 笑而不语
edwinlauff
2020-08-01 21:19:19 +08:00
用时候最好把主要代码理清,不过大多数还是用 Go
richangfan
2020-08-01 21:30:16 +08:00
这个是推广贴,标题 Google 一下就知道了
back0893
2020-08-01 21:50:00 +08:00
wokerman 用着不比 swoole 舒服.
反正用 swool 不如换语言
shuimugan
2020-08-01 22:27:56 +08:00
选了错的路,越走越错。
已转 Node.js 。
sagaxu
2020-08-01 22:52:16 +08:00
3 年多 Swoole 使用经验,心里依然没底,用 JVM 或者 Go 的时候,大部分疑问可以在 memory model 里找到答案,还有一些相关的书可以参考,但是 PHP+Swoole 的相关资料可没那么好找。

框架五花八门,现在官方最推荐的是 hyperf,注解和路由写起来很像 Spring,但 IDE 会提示删除未使用的 import,真要删了注解也就不工作了,这是个问题。第二个问题是启动慢,比 SpringBoot 还慢,似乎跟注解的工作方式有关。


@jaynos
如果不是历史遗留项目,还是 JVM 和 Go 靠谱的多,开发效率差不多,但生态和稳定性相差很大。

@back0893
wokerman 的回调,跟 Swoole 的协程比,体验还是差了写,写基础设施可能还行,写业务逻辑就累了。
abcbuzhiming
2020-08-01 22:58:32 +08:00
这个所谓的性能特别好,其实也只是和传统 PHP 比而已,在 PHP 以外的世界,一般般,不算特别出彩。

Swoole 这个东西的最大问题在于马太效应,虽然我也认为它才是未来,CGI 已经落后了,驻留进程才是正确的做法。无奈在 PHP 的世界里,CGI 真的是历史(包袱)厚重,导致 Swoole 这个东西诞生了这么多年,还是非主流。开源社区里,你先进,你性能高,但是如果你非主流了,那一定前途堪忧,无数先烈证明了这点
lsls931011
2020-08-02 10:18:31 +08:00
关键问题是 swoole 现在生态不完善,但是商业气息却非常浓厚,swoole 开源社区还互相吵,这还能起来嘛
xooass
2020-08-02 11:38:37 +08:00
还用问大家怎么看?

不看,不用
wangbenjun5
2020-08-02 11:57:47 +08:00
一句话,用 swoole 还不如用 go,无论是从开发效率、生态、可维护性上面比,别说 swoole 是 PHP,其实没多大关系
CoolSpring
2020-08-02 19:40:58 +08:00
@richangfan 搜索结果除了 v2 上的这个帖之外,只有一个采集 v2 的站啊
dvaknheo
2020-08-02 21:39:06 +08:00
swoole 把主战场放在 web 是搞错方向了。
hyperf ; swoole 节省下来的性能就浪费在这?
如果用 只能用在 swoole 上的框架 来进行开发,开发效率会大大降低。
另一方面,swoole 平台的东西用 composer 的东西都得要去看是否兼容 swoole.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694848

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX