所在的位置: php >> php优势 >> PHP8能有多快CSDN

PHP8能有多快CSDN

北京中科医院是骗子 http://pf.39.net/bdfyy/jdsb/170125/5212066.html

PHP-8将于今年年底发布,其最令人期待的功能之一就是JIT编译。让我们通过本文来看看这项功能对PHP脚本的速度有怎样的影响?

作者

PedroEscudero

译者

弯月,责编

郭芮

以下为译文:

今年年底,PHP-8即将发布。虽然这个主版本有很多新功能,例如联合类型、静态返回和弱映射等,但最令人期待的改进还是JIT编译器。

从理论上讲,JIT处理PHP脚本编译的方式能够提高应用程序的速度。但让我们来看看这种方法能否达到我们的期望。

请注意,在本文中使用的PHP-8不是最终版本。

首先,我们来编写一段运行的代码。我选择了冒泡排序,因为这是最差的排序算法,只有这种测试的时候我才能用这个排序算法。

?phpfunctionbubble_sort(array){start=microtime(true);do{sw=false;for(i=0,size=count(array)-1;isize;i++){if(array[i]array[i+1]){list(array[i+1],array[i])=array(array[i],array[i+1]);sw=true;}}}while(sw);end=microtime(true);returnend-start;}array=array(,-,3,0,2,77,5,-1,4,34,-,1,0.5,-3,0.88,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-,,,0.99,-44,4,,-44,23,-,,,0.99,-44,4,,-4,,-,,,0.99,-44,4,,-4,2.3,-2.01,,,0.99,-44,4,53,-4,23,-,,,0.99,23,,,-4,23,-,,,0.99,-4.14,4,,-4,23,-,,,0.99,-4.44,4,,-4,23,-,,,0.99,-4.4,4,,-4,23,-,-,-,0.99,-44,4,,-4,23,-1,,,0.19,-44,4,,-4,23,-21,,,0.,-44,4,,-4,23,-20.1,,2,0.,-44,4,,-4,2.,-,3033,33,0.49,-44,4,,-4,2.3,-200);echo\n;echobubble_sort(array);echo\n;?

我知道这个脚本编写的并不是很好,尤其是中间那个讨厌的数组。我知道我可以生成一个随机数组。我也知道我可以从文件中读取这个数组。但是,我只想要一个不需要考虑其他因素的非常慢的冒泡算法。我不希望这个基准测试中出现任何额外的干扰。

首先,我们在当前的PHP7.4版本中运行脚本:

dockercontainerrun--rm-v(pwd):/script/php:7.4php/script/bubble.php

运行次得到的平均时间为0.10500936秒——还不错。

现在我们在PHP-8中运行,先不要激活JIT。

dockercontainerrun--rm-v(pwd):/script/martinpham/php8:fpm-extra-alpinephp/script/bubble.php

同样运行次的平均时间为0.秒。老实说,这个提升不怎么明显。

下面,我们来测试期待已久的JIT:

dockercontainerrun--rm-v(pwd):/script/keinos/php8-jitphp/script/bubble.php

平均运行时间为0.秒!JIT确实很惊喜!对于像我这样非常


转载请注明:http://www.aierlanlan.com/grrz/2348.html