php8融入JIT,可以直接将php代码编译成机器码,而不像现在这样经过zend编译,PHP解释器等中间过程。
在密集型CPU运算应用中得到更高的性能提升。
php可以在机器学习、图形渲染和数据分析方面提高适用范围。
一组各编程语言测试结果显示在PHP7上启用JIT后性能提高了4倍。
本页数据来自:
https://gist.github.com/dstogov/12323ad13d3240aee8f1
的测试数据,数据供参考。并无权威性。
结果对比:
| 运行环境 |
执行时间 |
| PHP7-JIT (JIT=on) |
0.011 |
| gcc -O2 (4.9.2) |
0.013 |
| LuaJIT-2.0.3 (JIT=on) |
0.014 |
| gcc -O0 (4.9.2) |
0.022 |
| HHVM-3.5.0 (JIT=on) |
0.030 |
| Java-1.8.0 (JIT=on) |
0.059 |
| LuaJIT-2.0.3 (JIT=off) |
0.073 |
| Java-1.8.0 (JIT=off) |
0.251 |
| PHP-7 |
0.281 |
| squirrel-3.0.4 |
0.335 |
| Lua-5.2.2 |
0.339 |
| PHP-5.6 |
0.379 |
| PHP-5.5 |
0.383 |
| PHP-5.4 |
0.406 |
| ruby-2.1.5 |
0.684 |
| PHP-5.3 |
0.855 |
| HHVM-3.5.0 (JIT=off) |
0.978 |
| PHP-5.2 |
1.096 |
| python-2.7.8 |
1.128 |
| PHP-5.1 |
1.217 |
| perl-5.18.4 |
2.083 |
| PHP-4.4 |
4.209 |
| PHP-5.0 |
4.434 |
测试代码
function iterate($x,$y){
$cr = $y-0.5;
$ci = $x;
$zr = 0.0;
$zi = 0.0;
$i = 0;
while (true) {
$i++;
$temp = $zr * $zi;
$zr2 = $zr * $zr;
$zi2 = $zi * $zi;
$zr = $zr2 - $zi2 + $cr;
$zi = $temp + $temp + $ci;
if ($zi2 + $zr2 > BAILOUT)
return $i;
if ($i > MAX_ITERATIONS)
return 0;
}