PHP性能提升想法

    众所周知PHP是解释性的语言,对于QPS一直是个硬伤,同样的最近火热的GO语言是个编译型的语言,但是两者的接口QPS天壤之别啊,无法比拟。php单台机子qps达到四五百已经很不错了,但是GO可以轻松的上千。这就是解释性语言不能逾越的弊端吗?今天老司机带你们了解一下解释性语言也可以达到这种QPS的成就。

    php最多的使用场景就是与nginx通过cgi来交互,这里php-fpm承担了重要的角色,一般php-fpm监听的是9000端口。nginx会把请求达到9000通过php-fpm的协议来处理。

    这里虽然看起来没有多长的时间,但是详细的来说说:

    nginx接受到请求会首先进入系统态备份数据,然后进程调度到9000端口和php-fpm进行通信,然后让php去处理请求,当然这里的php-fpm是多进程去处理的,nginx来多少请求都会拉起多少个php进程去处理,这里是没啥毛病的。这里最大的毛病就是一个php进程会等待php处理完所有的东西才会返回,然后释放这个php进程,这样一来就会造成了很大的资源浪费,php进程一直在消耗。

    那么问题的症结都找到了,我们接下来怎么处理呢?这里老司机有一个大胆的想法,这也是之前同事说的一个想法。

    其他的语言都有自己的http包,php没有,php要么和nginxphp-fpm通信要么就是以模块的方式加载到apache中运行。这样一来所有的http请求都会先进入用户态,然后系统备份,再分配进程和php-fpm通信,这里就会浪费大量的请求时间和读写。如果把这里的时间和资源节省下来那就是几何倍的增长。所以要给php有自己的http包就像node一样。这样性能会提升好多倍。

    接下来说php多进程,php现在一般是用进程去处理请求,一个进程守护到整个请求结束,如果把底层的处理甩给消息去处理,同过消息去通信这样的话一个进程就会占用的资源更少,负责的使命更短,这样节省下来的资源更多,又是一个质的飞跃。这里性能的提升又是指数级数的翻倍。

    所以,老司机认为只要php团队把这些做起来,php的性能会提升很多倍,php就是世界上最好的语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值