wordpress php执行短代码_PHP 8.0发布日期和PHP中JIT的状态

5875808e3e7c94e94f5920d71d191a73.png

到目前为止,PHP仍然是用于创建网站的最流行的服务器端语言。

全球估计有80%以上的市场份额,这个二十几岁的编程语言已经无处不在。PHP仍然在发展,接下来的主要内容是PHP 8.0.0和它的JIT(实时)编译。

我们来看看这些新东东。

PHP的当前版本是7.0。此版本是一个重要的里程碑,性能显著提高,内存使用率降低。自7.0以来,有两个版本添加了重要功能:2016年的7.1和2017年的7.2版。

PHP 8.0的发布时间尚未确定,但由于这是一个重大的飞跃,它将需要几年时间的等待,这些功能也没有太详细说明,估计需要几年时间。在Twitter上一些人猜测认为PHP 8.0.0的发布将于2021年9月份:

2021年9月23日,#PHP 8的发布日期。@ Savara预测它!#SymfonyCon

- 拉里加菲尔德(@Crell)

PHP的实时编译引擎(JIT)

实时编译是一种优化运行代码的方法,它是Java虚拟机(JVM)使用的流行方法,包括Google推出的流行V8 JavaScript VM。这两个语言都使用JIT,但它并不是银弹。

PHP 实现了一个Zend VM,它会将人类可读脚本编译成虚拟机理解的指令,也就是操作码,这个执行阶段就是“编译时(Compile Time)”;在“运行时(Runtime)”执行阶段,虚拟机 Zend VM 会执行这些编译好的操作码。

通常编译时与运行时两个阶段是独立分开的,脚本编译完成后,像 APC 与 OPCache 这样的字节码缓存组件会缓存这些操作码。而 JIT 去掉了编译时阶段,它将这编译时与运行时两个阶段合为一体,实现即时编译与执行。

JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。

虽然自 PHP 7.0 以来,通过优化核心数据结构 HashTable、强化 Zend VM 中某些操作码与持续改进 OPCache 的 Optimizer 组件等具体措施,PHP 性能得到了显著提升,但是实际上这些优化似乎已经走到极限了。现在 JIT 从底层着手,被认为是目前提升 PHP 性能的最佳出路。

关于是否引入 JIT 的官方投票结果已于近日公布,因为大部分核心开发者投了赞成票,所以 PHP 8 中将会支持 JIT。

在演进之前的PHP(PHP 7.x)侧重于使用JIT改进PHP性能。这项工作在基准测试中显示取得了相当大的改进,但事实证明,在WordPress或Joomla等应用中几乎没有太大变化。因为 JIT 在 CPU 密集型的代码上效果最好,而一般情况下,用 PHP 编写的程序都是 I/O 密集型的。

简单来说就是,PHP 程序往往受限于 I/O 而不是 CPU,使 PHP 代码运行速度变慢的因素往往是它们正在执行的 I/O 操作,包括连接、读取和写入数据库、高速缓存、文件与套接字等。

PHP 中 CPU 密集型代码的一个例子是 Zend/bench.php。

那么 PHP 中的 JIT 将会在哪里发挥作用呢?答案是数学领域。关于 PHP JIT 的详细介绍,可以查看:

https://blog.krakjoe.ninja/2019/03/php-gr8.html

小结

JIT和PHP8.0都将在PHP的未来出现,它们都是未来的重要特性。尤其对于JIT而言,PHP的短生命周期对于JIT实现并不是特别理想,这与持续运行的进程语言(如Node.js或Java)相比较。

编译:老夏

来源:综合自外媒,开源中国等

d54c360bdf057c43861019835f1de9a6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值