PHP7和PHP5的对决
1、纯php脚本测试
$arr=();
for($i=0;$;$i++){
$arr[$i]=$i;
}
$tmp=();
($$i){
if($i%2==0){
$=($i,$arr);
if($){
array_push($tmp,$i);
}
}
}
PHP5版本测试:
time/usr/bin/phptest.php
real0m0.301s
user0m0.239s
sys0m0.050s
--------------------------
time/usr/bin/phptest.php
real0m0.310s
user0m0.241s
sys0m0.054s
--------------------------
time/usr/bin/phptest.php
real0m0.289s
user0m0.238s
sys0m0.050s
PHP7版本测试:
time/usr/local/php7/bin/phptest.php
real0m0.087s
user0m0.063s
sys0m0.024s
-------------------------------------
time/usr/local/php7/bin/phptest.php
real0m0.106s
user0m0.073s
sys0m0.033s
--------------------------------------
time/usr/local/php7/bin/phptest.php
real0m0.083s
user0m0.061s
sys0m0.022s
通过数据可以看出来,单纯的php脚本测试,可以看出php7性能提升了3到4倍。
2、php数据库操作测试
首先我们创建一个用户表:
Table:test_user
CreateTable:CREATETABLE`test_user`(
`uid`int(11)NOTNULLAUTO_INCREMENT,
`name`char(100)NOTNULLDEFAULT,
PRIMARYKEY(`uid`)
)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8
给test_user表插入一条数据:
insertintotest_user(uid,name)values(1,dada);
MariaDB[test]select*fromtest_user;
+-----+------+
|uid|name|
+-----+------+
|1|dada|
+-----+------+
创建数据库测试脚本test_db.php,确保你的两个PHP版本都安装了PDO扩展。
/usr/bin/php-m|greppdo
pdo_mysql
pdo_sqlite
/usr/local/php7/bin/php-m|greppdo
pdo_mysql
pdo_sqlite
我的两个PHP版本已经安装了PDO(不要再使用php_mysql扩展,已经过时了,PHP7已经完全抛弃,mysqli也不建议使用)。
接下来我们通过PDO编写脚本,测试select执行50万次的性能对比:
$host=yourHost
$user=yourUser
$pass=yourPass
$db=test
$port=3306;
try
{
$dbh=newPDO(mysql:host=$host;dbname=$db,$user,$pass);
echoConnectedp
}
catch(Exception$e)
{
echoUnabletoconnect:.$e-getMessage().p
}
$sql=selectSQL_NO_CACHE*fromtest_user;
$tmp=array();
for($i=1;$i=500000;$i++){
$ret=$dbh-query($sql);
foreach($retas$row){
$tmp[id]=$row[id
$tmp[name]=$row[name
}
}
PHP5测试test_db.php:
time/usr/bin/phptest_db.php
real0m48.396s
user0m11.149s
sys0m3.998s
real0m51.447s
user0m11.800s
sys0m4.395s
real0m51.517s
user0m11.733s
sys0m4.439s
PHP7测试test_db.php:
real0m47.900s
user0m9.875s
sys0m4.130s
real0m46.977s
user0m9.760s
sys0m3.983s
real0m50.010s
user0m10.268s
sys0m4.307s
这次脚本执行了50w次查询,user执行时间PHP7执行的脚本几乎都比PHP5要少一秒!是少一秒不是一毫秒。