测试代码是网上找的一个,如下:
$t1 = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
aaa($i);
}
$t2 = microtime(true);
echo 'php time:' . ($t2 - $t1) * 1000 . "ms\n";
function aaa($i) {
$a = $i + 1;
$b = 2.3;
$s = "abcdefkkbghisdfdfdsfds";
if ($a > $b) {
++$a;
} else {
$b = $b + 1;
}
if ($a == $b) {
$b = $b + 1;
}
$c = $a * $b + $a / $b - pow($a, 2);
$d = substr($s, 0, strpos($s, 'kkb')) . strval($c);
}
-
php 7.0 运行 10 次的时间如下(平均: 7075.7503986359ms):
- php time:8072.5648403168ms
- php time:6939.5442008972ms
- php time:7191.8301582336ms
- php time:6945.8959102631ms
- php time:6882.6849460602ms
- php time:7032.8409671783ms
- php time:6811.5448951721ms
- php time:6672.425031662ms
- php time:6793.6861515045ms
- php time:7414.4868850708ms
-
php 7.1.2 运行 10 次(平均: 6934.3298435211ms)
- php time:7199.9051570892ms
- php time:6994.499206543ms
- php time:6757.4181556702ms
- php time:6789.9668216705ms
- php time:6769.6089744568ms
- php time:6939.1942024231ms
- php time:7054.6488761902ms
- php time:7051.059961319ms
- php time:7018.3329582214ms
- php time:6768.6641216278ms
-
php jit 运行 10 次(平均: 5730.8961868286),当然还有优化空间:将 pow 改成 ** 运算符,将 strval 改用强制类型转换,其运行时间为: 5076.4540433884 ,提升 11.41%)
- php time:5733.3748340607ms
- php time:5658.3139896393ms
- php time:5625.147819519ms
- php time:5610.3270053864ms
- php time:5665.7960414886ms
- php time:5727.0920276642ms
- php time:6207.0441246033ms
- php time:5648.952960968ms
- php time:5796.0541248322ms
- php time:5636.8589401245ms
上面的结果是: jit 的运行速度比 7.1 提升 17.35%, 比 7.0 提升 19%, 7.1 比 7.0 提升 1.99%