PHP 底层为什么会这么脆弱?

2014-11-11 22:39:26 +08:00
 thankyourtender
bug本身修不完,扩展经常维护的已经不多了。

很多关键性的东西都处于能用,但不是高性能的状态。
比如socket,eventLoop。

看changeLog很多都是以往留下的bug.

总觉得不够专业。
8692 次点击
所在节点    PHP
61 条回复
em70
2014-11-11 22:58:52 +08:00
php鲁棒性很好啊,随便写的程序,不需专门优化,性能都不差的。
txlty
2014-11-11 23:00:44 +08:00
“比如socket,eventLoop”

用 Swoole、pthreads 。
xing393939
2014-11-11 23:04:15 +08:00
@em70 php鲁棒是啥?
thankyourtender
2014-11-11 23:04:33 +08:00
你们看最近bug修复的changelog
vibbow
2014-11-11 23:05:29 +08:00
PHP本身就不是为高性能而生的啊。
要高性能的,干嘛要选解释性语言?
t6attack
2014-11-12 00:09:39 +08:00
php的相关扩展、技术,大多是php大牛们为了解决自身需要弄出来的。比如facebook发现php承受几千亿pv很吃力,于是就有了HipHop for PHP (HHVM)。而在这之前根本没人做这事儿。
如果某个扩展大牛自己不用了,用的人也很少了,自然就不更新了。
比如socket,印象里从php4开始就没更新过。用的人也很少。很好奇你用socket干嘛?
em70
2014-11-12 01:04:51 +08:00
@xing393939 鲁棒是Robust的音译,也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性----------百度百科
lincanbin
2014-11-12 02:59:57 +08:00
做大了就这样,默认就有1500个函数,不需要import就可以直接用的那种。
这1500函数分由许多人完成,单元测试也是自己做,出些bug也正常,而且出bug的地方一般也是用的人少的地方,其他语言也都有,就是没这么实诚,不写出来。
像微软的补丁其实也有一些是修自己的bug的,但是写log就写作提升系统稳定性与性能。程序员好多都这样,产品说你这有bug,打死不认,commit修bug的时候就糊弄了点东西上去。
lincanbin
2014-11-12 03:11:16 +08:00
而且拓展能用的话也没必要经常更新啊,像Python的MySQLdb。
另外帖子标题本身就是错误的,PHP的底层稳定性非常高,目前是顶级水平。
到了什么程度呢,未定义变量,错误的类型推导等等,关掉错误提示照样跑。也就是常说的鲁棒性强。
性能上也还过得去啊,我写了个PHP论坛,在4美元的vps上跑,单看压力测试结果已经可以轻易承受上千万的日PV了。
mjar
2014-11-12 08:25:28 +08:00
@xing393939 鲁棒性这个词是译者偷懒了,完全跟原意无关的字面。
invite
2014-11-12 08:35:54 +08:00
@lincanbin 求相关软件的优化配置。
thankyourtender
2014-11-12 09:07:18 +08:00
@t6attack socket在不用其他语言,压力要求不大的情况下,一直有人在用。 因为我有看到,自己也稍微的使用过。
thankyourtender
2014-11-12 09:09:53 +08:00
@lincanbin  容错率是非常高的,这语言。

就是1500个函数,还由不同的人维护,不常用的就掉坑了。

总觉得没有像Java等企业级技术一样安全有保障。
tabris17
2014-11-12 09:25:24 +08:00
出bug的地方都是用的人少的地方,其实PHP已经算好的了。生产环境中要到的东西,如果有坑已经有前辈趟过去了
tang8888
2014-11-12 09:33:45 +08:00
nojejs 在这些方面做的更好.可以试试.
yakczh
2014-11-12 10:09:15 +08:00
http://www.geek521.com/?p=8131

php的socket扩展 swoole 性能是Node.js的12倍
aliang032
2014-11-12 10:27:41 +08:00
比如http://wwww.workerman.net,用php底层socket写的服务器,性能很强悍啊

socket,eventLoop
可以用 swoole、libevent、libev ,这些都是非常牛的东西
lincanbin
2014-11-12 10:49:23 +08:00
@thankyourtender 毕竟不要钱,跟openssl类似,开源组织都不太好混。还有历史包袱,又不可能像Python一样直接出个Python3扔掉所有历史包袱,如果这样做就离死不远了。
@invite 哪来什么优化配置?
@vibbow web开发有几家网站不是用解释型的?
tang8888
2014-11-12 10:58:00 +08:00
java .net做web不用解释,直接编译,效率高,速度快,建议选这两个.
mhycy
2014-11-12 11:07:40 +08:00
@lincanbin 同感...我们现在在维护的系统要是开错误提示的话估计没法跑.....

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

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

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

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

© 2021 V2EX