昨天,在一台服务器上安装了PHP7-dev,安装方法点击这里查看。
今天在同一台服务器上,使用相同的参数安装了PHP5.6.9,php.ini以及php-fpm.conf的配置也完全一致。
用来测试一下PHP7与PHP5相比,到底带来了多少性能上的提升。
本次测试使用Apache的ab工具,对全新安装的WordPress 4.2.2首页来进行测试。测试环境为 Ubuntu 14.04 64bit、Nginx 1.9.0、MySQL 5.5,除了PHP版本有所区别外,其它环境完全一致。
测试命令:
ab -n10000 -c200 "http://192.168.56.100/wordpress42/index.php"
PHP 5.6.9 测试结果:
This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.56.100 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/1.9.0 Server Hostname: 192.168.56.100 Server Port: 80 Document Path: /wordpress42/index.php Document Length: 0 bytes Concurrency Level: 200 Time taken for tests: 345.350 seconds Complete requests: 10000 Failed requests: 311 (Connect: 0, Receive: 0, Length: 311, Exceptions: 0) Non-2xx responses: 10000 Total transferred: 2935145 bytes HTML transferred: 167007 bytes Requests per second: 28.96 [#/sec] (mean) Time per request: 6906.992 [ms] (mean) Time per request: 34.535 [ms] (mean, across all concurrent requests) Transfer rate: 8.30 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 4.0 1 70 Processing: 117 6675 10922.9 4561 91115 Waiting: 117 6675 10922.9 4561 91115 Total: 151 6676 10923.4 4562 91116 Percentage of the requests served within a certain time (ms) 50% 4562 66% 4627 75% 4677 80% 4715 90% 4853 95% 7544 98% 60043 99% 67049 100% 91116 (longest request)
PHP7 测试结果:
This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.56.100 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/1.9.0 Server Hostname: 192.168.56.100 Server Port: 80 Document Path: /wordpress42/index.php Document Length: 0 bytes Concurrency Level: 200 Time taken for tests: 169.558 seconds Complete requests: 10000 Failed requests: 124 (Connect: 0, Receive: 0, Length: 124, Exceptions: 0) Non-2xx responses: 10000 Total transferred: 2893349 bytes HTML transferred: 66588 bytes Requests per second: 58.98 [#/sec] (mean) Time per request: 3391.161 [ms] (mean) Time per request: 16.956 [ms] (mean, across all concurrent requests) Transfer rate: 16.66 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 4.1 1 70 Processing: 57 2911 6714.7 1946 67058 Waiting: 57 2911 6714.6 1946 67058 Total: 93 2912 6715.7 1947 67059 Percentage of the requests served within a certain time (ms) 50% 1947 66% 1971 75% 1988 80% 2001 90% 2056 95% 2215 98% 16049 99% 60003 100% 67059 (longest request)
我们可以比较一下测试结果的关键值,如下:
PHP5 PHP7 Failed requests: 311 124 Requests per second: 28.96 58.98 Time per request: 34.535 16.956
好了,一起看下结果吧。
Failed requests(失败的请求数量),PHP5为311,PHP7为124,失败数量降低了一半以上;
Requests per second(吞吐率),PHP5近似为29次/秒,PHP7近似为59次/秒,吞吐率提升了一倍左右;
Time per request(服务器平均请求等待时间),PHP5近似为35ms,PHP7近似为17ms,服务器请求等待时间缩短了一半。
目前PHP7还只是处于开发版本阶段,希望10月份发布的正式版本PHP7在性能上还会有更大的提升!
欢呼吧PHPer,春天就要来了~~
P.S. 有时间了再做个PHP7与HHVM的性能对比,看看会得出什么结果。