PHP8融入JIT之后性能将得到极大提升
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;
}