下图是ApacheBench对论坛首页(XXXXXXXXXXXXXXXX/XXXXXXXXp)的测试结果。共10请求,2并发:
平均每个请求的完成时间是1200毫秒,网络延迟(约50毫秒)的影响可以忽略不计。测试发现,不管用2并发还是单发,每个请求的处理时间都保持基本不变,均接近1200毫秒。测试还发现,对静态文件的访问(比如js文件)响应速度极快,可忽略不计,这就说明长达1.2秒的时间,基本都花在运行php脚本上了。
搞软件的同学读到这里估计要跳起来了,首页html内容才24kb,
生成24kb的html需要1.2秒,这是什么年代的计算机?再者,就算服务器是双路至强有16核,如果每个访问占用每个核心1.2秒,这不就等于在说,只要每秒钟产生15个左右的访问,服务器就会完全卡死?
随后我又测试了 XXXXXXXXXXXXXXXXXXXXXXXX/t/78531 ,平均需要1.7秒。
联想到最近有越来越多的同学说论坛不好用,说qq方便,
都在群里发言而不愿意上论坛,我实在是开心不起来。有一点是可以肯定的:今天的科创论坛,比08年的科创论坛还慢,比每天1000万访问量的知乎还慢。
这是谁的错?
下面的解释,能比较客观而片面的回答一下这个问题。
因为科创论坛用的是php。
对web技术稍微有点了解的同学一定知道php,它是这个星球上最普及的服务器脚本语言,历史可以回溯到1995年。彼时,php的发明给无数堆砌html的小朋友们点起了一盏明灯,指明了一条方向。
但是php真的很慢。不过慢并不是php的罪恶——php的原意,是在html中用<?php>标记,插入服务器生成的动态内容。这能有多少运算量?不过是图个方便耳。1995年的今天,大家不再需要写c语言程序接收表单数据、输出html以实现动态内容,而是直接在html中插入perl语法的脚本段——简直神作!php对web的普及立下了汗马功劳。
然而同时也要考虑历史的进程
随着web应用越来越复杂,功能越来越花哨,界面越来越华丽,php不再仅仅被用于获取表单输入——php被用来干所有事情:数据库读写,输出JSON响应,渲染模板,计算图表……这就如同一把剪刀,被当成了锤子、改锥兼订书机。
如果你问任何一个程序员,是不是应该用不同的语言解决不同的问题,他几乎一定会表示同意。然而彼时web开发的大潮冲昏了所有人的头脑,大家开始用php解决所有问题;如果一个操作用PHP实在是太慢,以至于所有人都无法接受了,就会有人用C语言写一个PHP模块,供调用……
php到底有多慢?
目前业界最流行的几种服务器语言:JavaScript,PHP,C#,Java。
JS(基于V8引擎)和C#目前都属于编译语言,很快。Java由于基于JVM虚拟机,速度次之,但是用户基数大。
PHP今天绝大多数时候仍然是解释语言(除非你用HHVM),而且最常见的形式是从文件实时加载,速度大概是JS的1/20~1/50左右。
用数据说话?网上的对比太多了,就不搬运垃圾了。
这样看来php真的很慢哦。那为什么不换呢
因为科创一如既往地“懒”。无论是PW还是DZ,多年以来我们总是在用那些已经臃肿不堪、积重难返的产品。今天科创正在用的PHPWind,其团队已经散伙,DZ的创始人则远走高飞……然而这时我们没有选择——我们再也没有免费的产品可用了,但也几乎没有产品可用了。《物以稀为贵》,道理都懂,但一到实践起来,我们总会被各种各样的成见禁锢;往往只有在真正撞到悬崖上的时候,才猛然醒悟过来,曾经的自信是多么地可笑。
有人说我是负面人格,我同意。我喜欢看事情的负面,因为它能保持人的清醒,越消极越清醒。
200字以内,仅用于支线交流,主线讨论请采用回复功能。