首先在win7 x64的桌面上用php 5.5.1的cli状态运行循环1千万次测试,时间差距是356毫秒。
php代码如下:
<?
echo floor(microtime(true) * 1000);
$n=0;
for($i=0;$i<10000000;$i++){
$n++;
}
echo '--|-|--'.floor(microtime(true) * 1000);
?>
执行截图:
此时是未打开opcache的。
然后转移到centos X64 v6.6的虚拟机上,用的是phpv5.6.9 with opcache v7.04-dev
测试的结果是:
打开opcache:
关闭opcache:
可以看出:打开opcache时,执行时间是222,关闭后是297
执行效率提升:25%左右
有点不太明白,为何仅仅是从opcache开始执行,效率就提升了呢?难道输出时间的代码是在编译成opcode之前就执行了?这不合理啊。
编译时间理论上不应该算在执行代码的时间之上。