新浪云换7指南
新浪云的PHP 7版本运行环境上线了,相对于PHP 5,PHP 7的性能,在官方宣传和实际应用测试中,都有极好的性能表现,大多数的主流应用和框架都有超过1倍的性能提升。
随着新浪云支持PHP 7运行环境,将应用切换到PHP 7版本运行无疑是更好的选择,但是,由于PHP 7的修改十分巨大,因此,有极少部分的代码是不兼容的,需要针对性的进行修改,想比较巨大的性能提升,这些小的修改就变得微不足道了~
目前新浪云的PHP 7极度接近标准PHP 7环境,几乎对原版PHP 7没有任何修改,因此,能在原版PHP 7环境中运行的程序,一定可以在新浪云无缝的运行。
针对PHP 7的修改,官方也提出了迁移指南,通过迁移指南,可以根据实际情况,满足PHP 7的代码编写要求。其中,最终要的,大概有这几项:
- mysql系列函数被移除,mysql系列函数(mysql_connect, mysql_query …),在PHP 5.5.0 起已经被标记为废弃状态,并在PHP 7版本中已经移除,官方更加推荐使用mysqli系列函数,或者PDO进行数据库的相关操作,如果您在代码中使用了mysql系列函数,需要将其修改为mysqli,或者使用PDO,以便能在PHP 7环境运行。
$HTTP_RAW_POST_DATA
被移除。同样的,$HTTP_RAW_POST_DATA
变量在PHP 5.6.0 中被标记为废弃状态,在PHP 7中已经移除,因此,需要使用 php://input 作为替代。ereg
系列函数(ereg, eregi, ereg_replace …)等也同样被移除了,如果有类似的调用,需要替换为preg
相关的函数。- 针对新浪云的服务,原有的SaeCounter,SaeRank已经不再支持,需要使用Redis服务进行替换。
除了上述的一些比较大的修改,还有一些小的变更,可以参考迁移指南,或者,直接切换到PHP 7版本,根据错误日志,找到不符合规范的地方,直接修改就好啦~
最后,放一个针对PHP 7运行环境的性能测试,结果会让你大吃一惊的!
首先说一下测试环境:
在一台机器上,使用ab进行压测,设置连接数为30,测试请求总数为1000,应用为WordPress 4.6.1全新安装版本,换用不同的PHP版本,可以得到下面的结果:
PHP 5.3:
Concurrency Level: 30
Time taken for tests: 21.246 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 11064000 bytes
HTML transferred: 10845000 bytes
Requests per second: 47.07 [#/sec] (mean)
Time per request: 637.381 [ms] (mean)
Time per request: 21.246 [ms] (mean, across all concurrent requests)
Transfer rate: 508.55 [Kbytes/sec] received
PHP 5.6:
Concurrency Level: 30
Time taken for tests: 22.701 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 11064000 bytes
HTML transferred: 10845000 bytes
Requests per second: 44.05 [#/sec] (mean)
Time per request: 681.031 [ms] (mean)
Time per request: 22.701 [ms] (mean, across all concurrent requests)
Transfer rate: 475.96 [Kbytes/sec] received
PHP 7:
Concurrency Level: 30
Time taken for tests: 4.473 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 11064000 bytes
HTML transferred: 10845000 bytes
Requests per second: 223.54 [#/sec] (mean)
Time per request: 134.202 [ms] (mean)
Time per request: 4.473 [ms] (mean, across all concurrent requests)
Transfer rate: 2415.31 [Kbytes/sec] received
可以看到,性能差距巨大,同样的请求数和并发,生成的内容长度也相同,PHP 7的QPS从PHP 5的44.05/sec和47.07/sec,暴涨到223.54/sec,实现了几乎5倍的增长,每个请求的时间也从650ms左右降低到了只有130ms。有如此提升,还不赶紧试试PHP 7的强大威力!