宝哥软件园

PHP7正式版测试,性能惊艳!

编辑:宝哥软件园 来源:互联网 时间:2021-09-20

我们今天就来看一下PHP 7正式版的算法和wordpress应用在其上的性能表现。

PHP7的安装,真是非常地向下兼容,下载,解压,把之前的配置命令用上,一路回车下去,毫无违和感。为了不影响现有的环境的运行,所有专门开辟了目录。

配置参数如下:

-前缀=/usr/local/php7-wit-config-file-path=/usr/local/php7/etc-enable-fpm-wit-fpm-user=www-wit-fpm-group=www-wit-MySQL-wit-PDO-MySQL-wit-iconv-dir-wit-freetype-dir-wit-JPEG-dir-wit-png-dir-wit-zlib-wit-libxml-dir=/usr-enable-XML-disable-rpath-enable-enable-enable版本据鸟哥建议,使用新一点的编译器,推荐海湾合作委员会4.8以上,因为只有海湾合作委员会4.8以上服务器端编程语言(专业超文本预处理器的缩写)才会开启操作线和执行数据的全局寄存器支持,这个会带来5%左右的性能提升。所以本实验选用的(同地面控制中心)地面控制中心版本为GCC 4。8 .2版20131212(红帽4.8.2-8(海湾合作委员会)。

安装好之后,做上软链接:

ln-s/usr/local/php7/bin/PHP/usr/bin/php7ln-s/usr/local/php7/bin/PHP-config/usr/bin/php7-config ln-s/usr/local/php7/bin/phpize/usr/bin/php7-izeln-s/usr/local/php7/sbin/PHP-fpm/usr/sbin/php7-fpmph p7-v看到了我们熟悉的提示:

[[电子邮件保护]测试]# php7-vPHP 7。0 .0(命令行界面)(版本: 2015年12月2日19:19:14) (ZTS)版权所有(c)1997-2015年PHP组Zend Engine v 3。0 .0,版权所有1998-2015年Zend技术公司首先做的是性能评测,评测机型,首都在线云主机,4核中央处理器英特尔至强处理器E5-2680 0 @ 2.70GHz,内存4G,操作系统Centos 6.5。

随便写了三段程序:

第一段,生成一个60万元素的数组,通过查找键的方式,来确定键是否存在。

?PHP $ a=array();对于($ I=0;$ I 600000 $ I){ $ a[$ I]=$ I;} foreach($ a as $ I){ array _ key _ exists($ I,$ a);}首先是PHP 5.3.17版。

[[电子邮件保护]测试]#时间PHP search _ by _ key。PHP real 0.389 suser 0m 0.337 ssys 0m 0.051s[[电子邮件保护]测试]# time PHP search _ by _ key。PHP real 0.378 suser 0.308 ssys 0.062s[[电子邮件保护]测试]# time PHP search _ by _ key。PHP实数0.378 suser 0.317 ssys 0m 0 .其次是PHP7版。

[[电子邮件保护]php7]#时间php7 search _ by _ key。phpreal 0m 0.082用户0m 0.066 ssys 0m 0.014s[[电子邮件保护]php7]# time php7 search _ by _ key。phpreal 0m 0.080 suser 0m 0.058 ssys 0m 0.021s[[电子邮件保护]php7]# time php7 search _ by _ key。phpreal 0m 0.080 suser 0m 0这刚出手,就名不虚传,响应时间在PHP7下运行变为原来的1/4。真牛!那我还得搞俩试试,第二段,还是上面的这个方式,不过由于速度较慢,所以变成了一个60000个元素的数组,查找值。代码如下:php代码:

?PHP $ a=array();对于($ I=0;$ I 600000 $ I){ $ a[$ I]=$ I;} foreach($ a as $ I){ array _ key _ exists($ I,$ a);}[[电子邮件保护]测试]#时间PHP search _ by _ val。PHP real 0m 24.296 suser 0m 24.184 sys 0m 0.025s[[电子邮件保护]测试]# time PHP search _ by _ val。PHP real 0m 25.523用户0m 25.317 ssys 0.026s[[电子邮件保护]测试]# time PHP search _ by _ val。PHP真实0m 26.026 suser 0m 25.477s等待的时间,总是觉得很漫长,三次测试,花掉了75秒多。下面,PHP 7登场了。

[[email protected]php7]# time php7 search _ by _ val . phpreal 0 m3 . 362 user 0 m3 . 323 sys 0m 0.007s[[email protected]php7]# time hp7 search _ by _ val . phpre l0m 3 . 266 suser 0 m3 . 251 sys 0m 0.004s[[email protected]php7]# time hp7 search _ by _ val . phpre l0m 3 . 290 suser 0 m3 . 275 ssy s0整个速度提高了近七倍。作者激动的心情溢于言表,一个高效的素数算法已经很方便地算出。计算200万以内的素数个数。这次就从PHP7开始吧。

[[email protected]php7]# Time php7 prime _ v3 . PHP 2000000 real 0m 1.151 user 0m 1.129 ssys 0m 0.010S[[email protected]php7]# Time php7 prime _ v3 . PHP 2000000 real 0m 1.141 user 0m 1.123 sys 0m 0.011S[[email protected]php7]# Time php7 prime _ v3 . PHP 20000 real 0m

[[email protected]test]# time PHP Prime _ v3 . PHP 2000000 2000000下的素数计数为:148933 real 0m 4.425 suser 0m 4.380 ssys 0.023s[[email protected]test]# time PHP Prime _ v3 . PHP 2000000 2000000 200000下的素数计数为:148933 real 0m 4 . 33:148933 real 0 . 444444450005是一种相对快速的寻找素数的算法。

?php/* *要更改此许可证头,请在项目属性中选择许可证头。*要更改此模板文件,请选择工具|模板*并在编辑器中打开模板。*/$ num=$ argv[1];$ ret=array(2);$ flag=falsefor($ I=3;$ i=$ num$ I=2){ $ flag=false;$ sqrt=sqrt($ I);foreach($ ret as $ prime){ if($ I % $ prime==0){ $ flag=true;打破;} if($ prime $ sqrt){ break;} } if(!$ flag){ $ ret[]=$ I;}}echo (count($ret))。 n ';至此,我们基本可以说明问题了。这些代码没有使用复杂的函数库,也没有大量的网络和IO,但性能至少优化了3倍。这真的是一个历史性的进步。在我们过去的绩效评估中,语言层面的绩效往往被忽视。为什么这么说?例如,在XHProf中,有一个特殊的选项,XHPROF _ flags _ no _ builds,用于不分析内置函数或内部函数,如数组和日期等函数。因为每个人都经常错过改进的空间,当然普通人在这方面是无法改进的,所以HHVM应运而生,启发了今天的PHP 7。

经过一轮测试,引起了我对PHP 7更多了解的兴趣。我想看看扩展和一些常见的框架支持如何,所以我方便地做了以下两个测试。

我记得在Alpha1版本中,无法支持OneAPM。这次能行吗?我得到了OneApm_php_Agent_1.0.0.18.tar并成功安装。

成功识别PHP 7的安装路径。

安装成功。

至于扩展,我没有信心再测试了。这里有两个常用的东西,一个是Wordpress。虽然网站很和谐,但大家都知道是什么。另一个是ThinkPHP,这是国内使用最广泛的PHP开发框架。它肯定是第一个,但不是其中之一。作者也是TP的粉丝。

这两个软件做得好,应该表扬吗?还是应该夸PHP 7的兼容性做得很好?我不知道。不管怎么说,边肖看到这最初是正常的。Wordpress后台,当PHP 7作为FastCGI后端时,运行正常。

最新版本的ThinkPHP 3.2.3在PHP 7下正常运行。

最后我们做一个压力测试,两个wordpress,一个是新安装的版本,基本上是空的,另一个是已经发表了几篇文章的版本。我们测试主页。分别在PHP5.5和PHP7下测试,两者分别开启和关闭Zend OpCache,看响应性能是否有明显变化。1.PHP 5.5.26有一个不带Zend Opcache的文章版本,有20个并发版本。

2.PHP 5.5.26有一个不带Zend Opcache的文章版本,有10个并发版本。

3.PHP 5.5.26没有Zend Opcache,没有文章版本,有20个并发版本。

4.PHP 5.5.26没有Zend Opcache,没有文章版本,有10个并发。

可以看出并发不影响总时间。总时间比没有文章慢6S,平均慢20%。让我们打开PHP 5.5.26的Zend OpCache。

1.PHP 5.5.26有Zend Opcache和文章版本,有20个并发版本。

2.PHP 5.5.26有Zend Opcache和文章版本,有10个并发版本。

3.PHP 5.5.26有没有文章版本的Zend Opcache,还有20个并发版本。

4.PHP 5.5.26有没有文章版本的Zend Opcache,以及10个并发版本。

因此,Zend OpCache是否开启对性能有明显的影响。有文章的版本提升2倍以上,无文章的版本提升4倍以上。

让我们测试一下PHP7,这也是第一个没有Zend OpCache的版本。1.PHP 7有一个没有Zend Opcache的文章版本,有20个并发版本。

2.PHP 7有一个没有Zend Opcache的文章版本,有10个并发版本。

从上面的数据可以看出,PHP7的性能比PHP5.5.26高30%左右,我们来看看无文章版本。

3.PHP7没有Zend Opcache,没有文章版本,20个并发。

4.PHP 7没有Zend Opcache,没有文章版本,有10个并发。

与PHP5.5.26相比,非文章版提升了60%左右。我们来看看PHP7下的Zend OpCache版本。注意PHP7的Zend OpCache与PHP5不同,不需要专门安装扩展,只需在php.ini中添加以下三行配置即可.Zend _ extension=op cache . soopcache . enable=1 opcache . enable _ CLI=1

1.PHP 7有Zend Opcache和文章版本,有20个并发版本。

2.PHP 7有Zend Opcache和文章版本,有10个并发版本。

3.PHP 7有没有文章的Zend Opcache,20个并发版本。

4.PHP 7有没有文章版本的Zend Opcache,以及10个并发版本。

无敌,开启Zend OpCache时性能提升5倍以上,与同样开启Zend OpCache的5.5.26相比,性能提升至少3倍。可以说,Zend OpCache对于高并发下的性能至关重要。

PHP7的性能评测到此结束。PHP7 alpha版PHP7自6月上线以来,我们欣喜地等待着PHP7正式版的发布。评测证明PHP7值得你拥有,针对PHP的OneAPM可以深入所有PHP应用,完成应用性能管理和监控,包括代码级性能问题的可见性、性能瓶颈的快速识别和追踪、真实用户体验监控、服务器监控和端到端应用性能管理。而开启了Zend OpCache的PHP7和OneAPM也值得你热情拥有。

更多资讯
游戏推荐
更多+