为什么 PHP 总是被喷性能很差? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eightqueen
V2EX    PHP

为什么 PHP 总是被喷性能很差?

  •  
  •   eightqueen 2015-05-07 00:34:28 +08:00 11609 次点击
    这是一个创建于 3815 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们公司在把很多PHP项目转移到JAVA,这在业界也是一种潮流。PHP到底差在哪?还有为什么搜索分布式技术资料,一堆JAVA,很少看到PHP。

    36 条回复    2021-11-29 18:44:39 +08:00
    tuoxie007
        1
    tuoxie007  
       2015-05-07 00:37:30 +08:00 via iPhone
    Felldeadbird
        2
    Felldeadbird  
       2015-05-07 00:39:29 +08:00
    先来一个骂战引子:我大PHP把项目开发完毕了。大java还在配置环境中。
    目前我遇到PHP性能问题都是数据库问题。至于别人说的性能差,我就不知道该怎样理解了。
    PHP都是主要搭建网站为主,简单点就是展示数据。分布式这些东西PHP沾不上边啊,最多就是处理数据从何处来,何处去。所以资料就很少了。
    yangqi
        3
    yangqi  
       2015-05-07 00:43:09 +08:00
    要看用来干什么了,没有一个语言是完美的,各有各的特长
    Septembers
        4
    Septembers  
       2015-05-07 00:45:48 +08:00
    1. 信仰使其盲目 /t/187833
    2. 世界上只有一个PHP标准实现 php.net 这个实现糟糕而且有较多的问题
    2.1. PHP的标准化进程才开始
    2.2. 由于早期没有标准化导致实现只有一个
    2.3. 由于PHP的生命周期很特殊(CGI),导致有些业务无法处理
    2.4. 现在其他语言很少有采用这一特殊的方式运行
    3. PHPer水平有限,知识储备不足 这是根本原因
    cevincheung
        5
    cevincheung  
       2015-05-07 00:49:56 +08:00
    谁告诉我php做web行业应用有哪里不足的?
    lincanbin
        6
    lincanbin  
       2015-05-07 00:51:59 +08:00
    水平问题,我的就不慢:
    http://www.94cb.com/
    FrankFang128
        7
    FrankFang128  
       2015-05-07 00:52:30 +08:00
    @cevincheung 我想是逼格不足吧……
    dalaomj
        8
    dalaomj  
       2015-05-07 00:57:10 +08:00
    任何语言,如果居然触碰到“性能”问题,那说明你的项目成功了。或者你们公司做的是大生意。
    90%以上的网站根本没遇到性能问题,就死掉了。大部分时候主机处于“空跑”状态。操心性能问题,实属多余。
    Septembers
        9
    Septembers  
       2015-05-07 00:59:07 +08:00
    @dalaomj 性能与语言无关只和实现有关
    xiaozi
        10
    xiaozi  
       2015-05-07 01:01:45 +08:00
    php是最好的语言,没有之一
    dalaomj
        11
    dalaomj  
       2015-05-07 01:03:21 +08:00
    @Septembers 是滴。php性能并不差。
    可以喷php不标准、不专业、LOW。但性能差是咋个回事?!
    dalaomj
        12
    dalaomj  
       2015-05-07 01:05:57 +08:00
    如果你用java的思想写php,事事面向对象。性能似乎会很差,还是用java吧。
    Septembers
        13
    Septembers  
       2015-05-07 01:08:32 +08:00
    @dalaomj
    和PHPer的 水平修养 知识储备 成正修改关系,
    相对于的 Java开发者 的 水平修养 知识储备 相对于 Java开发者 会高很多。

    这也和学习方式有关,
    多数 PHPer 都没经过较系统的学习,
    而 Java开发者 则需要较系统的学习。
    Septembers
        14
    Septembers  
       2015-05-07 01:09:04 +08:00
    和PHPer的 水平修养 知识储备 成正相关关系,
    Septembers
        15
    Septembers  
       2015-05-07 01:09:45 +08:00
    和PHPer的 水平修养 知识储备 成正相关关系,
    相对于的 Java开发者 的 水平修养 知识储备 相对于 PHPer 会高很多。
    Septembers
        16
    Septembers  
       2015-05-07 01:10:29 +08:00
    shit 又发错了 抱歉

    和PHPer的 水平修养 知识储备 成正相关关系,
    相对于的 PHPer 的 水平修养 知识储备 相对于 Java开发者 会高很多。
    Septembers
        17
    Septembers  
       2015-05-07 01:11:29 +08:00
    不在状态 睡觉去 抱歉
    yyfearth
        18
    yyfearth  
       2015-05-07 02:10:02 +08:00   1
    @dalaomj 其实项目规模大了 几乎所有的脚本语言都撑不住
    不仅仅是性能问题 还有就是代码的组织和测试
    OO也是 规模不大体现不出好处 但是Java的OO往往封装的太深了 性能也好不起来
    feiyuanqiu
        19
    feiyuanqiu  
       2015-05-07 04:08:24 +08:00   2
    性能真不是什么大问题,能让 php 性能成为瓶颈的时候你们的老板估计要开心得跳起来
    php 被喷主要是:
    1、php 本身就不是个严谨的语言
    2、php 从业者的素质确实有些良莠不齐
    3、人云亦云跟风狗,整天有事没事拿 “PHP 是最好的语言” 到处晃

    第一点就不多说了,天天这样吐槽那样吐槽的帖子也有很多了
    第二点,现在基本没有哪个学校会教 php 了吧,新的 php 程序员基本是自学或是转职做程序员从培训学校速成的,老一届的优秀的 php 程序员渐渐富集到 百度腾讯新浪 这几个还在使用 php 的大公司去了或是在小公司创业公司做技术总监这些高级职位了,那么大量的下层岗位就由我这样的半桶水程序员来担当了,这类人的问题就是基础不扎实,只会跟 php 语言有关的东西,经常会问一些很初级的问题,导致程序员圈子整天黑 php,然后这又导致 php 对新人的吸引力越来越低,一个新人跑到论坛问该学什么语言呢?80%会说 python,10%会说 csapp、clrs、sicp...然后又导致 php 的从业者越来越少(真是感觉现在 php程序员越来越少,不管是从论坛的招聘帖情况来看,包括前公司从去年到今年只招到了一个人,干了三个月走了,到我上个月辞职,一个在国内同类行业中排得上号的员工总数接近两千人的企业的 php 程序员就只剩 3 个...),然后导致这些企业不得不(或是为了上市融资显得高大上)从 php 转向 java(因为实在招不到人了)
    反观 java,现在有哪个学校不教 java?哪个大公司不招 java?移动开发这么火,薪资叼叼的,我都经常在想我毕业的时候要是不进 web 部门进的是聊天工具部门现在也应该是月入一狗的码农了啊


    而且,在小公司做 php 真的感觉很 low 很像民工啊!一会要你改 html 页面这里左移 1px 了,一会让你写存储备份 SQL 数据了,一会哪个哪个部门的老大上来说他们想要个什么什么功能这么简单今天下午能上线吧,一会新来的产品经理不熟悉业务提了一堆狗屎一样的需求你要挨个挨个给他纠正了,一会前同事几年前留下的一个 1000 行的函数又出 bug 了测试环境死活不能重现生产环境不允许调试没有权限查看线上数据你就跟福尔摩斯一样一行行检查代码用反证法推理哪里有问题...捱到下班回去什么也不想干,书也不想看,项目也不想做,结果技术一点长进也没有,要找工作了发现连一点能拿来要工资的东西都没有,完全浪费了时间。工作中是任人使唤谁都可以投诉你一把的苦力,网络中是到处被黑歧视链的最底端,这种生活简直是见了鬼
    ryd994
        20
    ryd994  
       2015-05-07 05:52:00 +08:00
    It's made more horrible by the fact that a lot of substandard programmers use it.

    不是看不起PHP,是看不起某些PHP程序员
    O(log)的事情居然能写成O(n^2),性能问题就是这么来的
    Septembers
        21
    Septembers  
       2015-05-07 06:32:41 +08:00 via Android
    @ryd994 重点是许多PHPer都没了解过《算法导论》
    clino
        22
    clino  
       2015-05-07 08:19:45 +08:00
    https://www.techempower.com/benchmarks/#section=data-r10 php 还是有两个比较前面的
    记得以前php和ruby大都是比较靠后,python中游
    Nevervoid
        23
    Nevervoid  
       2015-05-07 09:51:02 +08:00
    @Septembers 阁下一定是学PHP的,心领神会。。。
    fulvaz
        24
    fulvaz  
       2015-05-07 10:02:35 +08:00
    因为java适合企业级应用,并非哪个不好,规模变大而需要点变化而已
    Septembers
        25
    Septembers  
       2015-05-07 10:09:53 +08:00
    @Nevervoid 抱歉 PHP对于我仅仅只是业余需要而已
    ajan
        26
    ajan  
       2015-05-07 10:49:13 +08:00
    @feiyuanqiu 我们公司的java程序员(web),那水平都气死人,稀烂,经验少,还说自己做过大项目,呵呵,连PC都不会配置,同在一个局域网手机不能访问他的PC调试,本机调试每次还要打包发布,每改一个字母都要重新编译打包发布。人还非常固执,顽固,无必要的大量使用ajax, js写不好也要死炫技。连调式查错都差劲(稀烂搓),有些错误可以打印到页面上,直观明了,还有就是大量用try catch, 真是够了...


    在其它群里讨论过,有和java程序员打过交到的,基本都一个结论,人固执,死脑筋。

    唉, 本不想喷,跟php,.NET, java 都合作过, 其中和java合作最不愉快。


    PS(个人观点): java不适合做web, 更不适合当下火热的移动web, 别人项目都上线了,你还在调环境,本机运行好好,服务器怎么跑不起来呢...

    我不是phper, 也不是javaer。我只是个旁观的(FED)。
    Viagra
        27
    Viagra  
       2015-05-07 11:55:14 +08:00
    有没有想跳槽的phper啊,求留言,求回复!
    qToTp
        28
    qToTp  
       2015-05-07 16:06:34 +08:00
    大家喷 php 性能差的原因是:真的差。

    你没开过法拉利的时候,人家喷你的速腾差,你别和金杯比啊。
    kimmykuang
        29
    kimmykuang  
       2015-05-07 16:26:13 +08:00
    一个是考虑这件事应不应该用PHP来做,明白PHP适合做什么不适合做什么;第二个是某些情况下PHP用的很差劲
    kaneg
        30
    kaneg  
       2015-05-07 16:51:12 +08:00 via iPhone
    PHP最和别的语言(或者说运行环境)不一样的是它无法保持运行状态。例如无法不借助第三方工具而缓存数据,每次请求,上次初始化的状态就丢失了。这样或许不会造成内存泄露,但真心不习惯
    marathonrush
        31
    marathonrush  
       2015-05-07 17:20:10 +08:00
    PHP回答不了性能啊、并发啊、一致性啊之类的问题,自然也不能在这些方面指责PHP。开发效率高,就一夫妻店语言。
    jacob
        32
    jacob  
       2015-05-08 16:33:14 +08:00
    @dalaomj 还有一个原因,水平太差,拉不出屎来嫌厕所脏。
    mingyun
        33
    mingyun  
       2015-05-11 21:56:51 +08:00
    微博是php开发的,慢吗
    aksoft
        34
    aksoft  
       2015-05-12 08:19:42 +08:00
    这有可比性么?
    ywisax
        35
    ywisax  
       2015-05-12 22:27:13 +08:00
    卧槽,连php慢在哪里都不清楚,就用java来重构。。。
    zjsxwc
        36
    zjsxwc  
       2021-11-29 18:44:39 +08:00 via Android
    PHP 现在性能已经是 golang 的两倍,堪比 rust 了。https://zhuanlan.zhihu.com/p/439183490
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3127 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 12:05 PVG 20:05 LAX 05:05 JFK 08:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86