Categories: PHP编程

PHP 8将有多快?

在今年年底,PHP-8将成为现实。尽管此主要版本具有多种新功能,例如联合类型,静态返回和弱映射,但最令人期待的改进是JIT编译器。

从理论上讲,JIT将由于其处理PHP脚本的方式而提高了应用程序的速度(我简化了)。但让我们看看这种方法是否符合我们的期望

请注意,我将要使用的PHP-8版本不是最终版本。

首先,让我们定义要运行的代码。我选择冒泡排序是因为它是最差的排序方法,我只能将其用于此类练习。

https://gist.github.com/PedroEscudero/b64ea7409c0cc483c44f0773b6aebbdb中的源代码

我知道该脚本在中间那讨厌的数组并不美观。我知道我可以生成一个随机数组。我也知道我可以从文件中读取它。但是,我只想要一个没有其他考虑因素的缓慢泡沫。在此基准测试中,我不需要任何额外的干扰。

首先,让我们在当前版本的PHP 7.4中运行脚本

docker container run --rm -v $(pwd):/script/ php:7.4 php /script/bubble.php

运行100次后,平均时间为0.10253500938416秒。不错。

现在我们使用未激活JITPHP 8 。

docker container run --rm -v $(pwd):/script/ martinpham/php8:fpm-extra-alpine php /script/bubble.php

同样,在运行100次之后,我的平均时间为0.098223924636841秒。老实说,改进不是很令人印象深刻。

但是我们在这里测试JIT功能,闪亮而令人惊叹的JIT:

docker container run --rm -v $(pwd):/script/ keinos/php8-jit php /script/bubble.php

平均时间为0.053637981414795秒!的确,JIT令人眼前一亮!对于像我这样需要担心执行时间的人来说。尽管该数字似乎并不十分相关(仅改善了0.04458594322秒),但如果以百分比查看,则可以更好地理解收益:45.39%。

我想要更多的比较,因此我使用了2009年史前版本的PHP-5.3版本。

docker container run --rm -v $(pwd):/script/ php:5.3 php /script/bubble.php

花了0.64574003219604秒。比激活PHP-8和JIT慢0.5921020508。

100个脚本运行时的平均性能比较

注意事项和注意事项

  • 我选择了冒泡排序脚本。您可以尝试其他选项,例如业务员问题或二叉树。结果应遵循相同的模式。
  • 正如我所提到的,此基准测试中运行的PHP 8版本不是最终版本,因此可以在最后一个发行版之前添加其他改进。
  • 我决定将浮点数保留为很多小数,即使它不是很漂亮。我想尽可能地精确。
5.0
05
深入理解PHP8 JIT
git fetch-从远程拉取数据
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Share
Published by
嘻嘻

Recent Posts

全球货币导航网页上线了!

o在全球化的今天,货币兑换和国…

5小时 ago

bash字符串拼接

在编程中,字符串的拼接是一个非…

6小时 ago

Bash Case详解

Bash case 语句通常用…

6小时 ago

Bash for详解

for循环是编程语言中的基础概…

6小时 ago

liunux中你必须知道alias命令?

在Linux操作系统中,无论你…

1天 ago

zshrc文件详解

Zsh 是一个强大的 shel…

2天 ago