讨论下 PHP 转 go 的水平

2023-12-08 11:05:54 +08:00
 v2li32
今天摸鱼又看到 php 性能不行的帖子,我是专业 phper,也能写 java,python,不爱写 go 是因为不喜欢 go 的语法。


不知道因为性能问题转 go 的人是否深入理解过 php.有没有了解到 php 的常驻模式下运行,了解到 select,epoll,然后在去得出结论 php 性能不行。

都是跑在 linux 下的编程语言,都在用 select,epoll,谁又能差谁很多,不晓得大多数 phper 有没有搞到这一步。

在回到开发效率上,php 真的是 web 语言开发效率第一。
orm ,一对多,多对多关联,起码是把 java 开发效率秒的车尾灯都看不到。


再说项目开发,项目大了,什么动态静态语言开发出来的都是屎山。

不是公司硬性规定,或者自己喜欢学一下 golang ,转 golang 是为了什么。。写 php 的应该都不会喜欢 golang 的写法。

以下 phper 转 go 先评价下自己的 php 评分。

会 curd 一个框架的评 a
...+多个框架基础的 redis 队列,自定义进程都能搞评 b
...+可以随意很快上手不了解的框架评 c,
...+可以随意点击框架/扩展包看个大概流程评 d,
...+了解 php 为什么跟 java 比性能不行,linux 下调试追踪,会多进程网络编程评 e,
...+能看懂部分 php 源码实现评 f.

所以你(phper)转 go 在 a,b,c,d,e,f 那个层次呢。
11559 次点击
所在节点    PHP
83 条回复
guanhui07
2023-12-12 21:04:14 +08:00
@lesismal 他说的 php 是韩天峰造的 swoole 确实和 golang 没什么不同了 ,常驻内存,同时支持协程,同步的写法,异步的执行,异步非阻塞的 swoole4 确实和 golang 差不多,swoole 确实是好东西 ,但是 php 官方也不认 ,php 官方只认 php-fpm fastcgi 同步阻塞 。
lesismal
2023-12-13 11:21:56 +08:00
@guanhui07 #81

看了下,看样子 swoole 确实是框架内置了一些驱动已经与协程结合起来了,例如 mysql 、redis ,确实很不错。
但这毕竟仍然是框架级的,也就是说,必须得 swoole 框架支持慢 IO 操作才能真正实现同步代码底层非阻塞+自动调度。三方的东西很多,如果需要依赖一些 swoole 尚未支持的,则仍然是可能阻塞的。
golang 是语言级支持了这些,三方的 golang 驱动实现基于 golang 标准库即可获得同步代码底层非阻塞+自动调度。

所以也不能完全说“没什么不同”
lesismal
2023-12-13 14:03:50 +08:00
@guanhui07 除了 #82 里说的,其他还有很多,go 并发编程里随便弄些协程做常驻任务运行,还可以方便结合 chan 、mutex 之类的实现各种功能,我搜的 swoole 例子里主要是 http handler 处理 http 请求这种,更广泛的业务场景怕是差距更大,不只是简单的无状态接口这个地方的协程的便利性

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

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

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

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

© 2021 V2EX