3 月 30 日消息,随着绝大多数人赞成合并的投票结果出炉,PHP 8 将正式引入 JIT(Just-In- Time 即时编译) 支持。引入 JIT 支持将进一步提升 PHP 性能,JIT 编译器被视为 PHP 版本中下一个主要的进步。今年 PHP 7.4 版本将发布,消息称 PHP 8 可能要等到 2021 年底。
JIT 并非是新技术,很多语言例如 Java 早已实现。JIT 的思想很简单,即在程序运行时动态对程序进行编译,生成平台相关的机器码(比如运行它的机器 CPU 的本地代码),从而加快程序的运行速度。此前,PHP 的 JIT 支持已经通过一个独立的分支进行了一段时间的开发,投票结束后,将正式合并到 PHP 8 中。
在 PHP 中,JIT 将为 Zend Vm 生成的指令作为中间表示,并发出依赖于体系结构的机器代码,这样代码的宿主就不再是 Zend Vm,而是直接由 CPU 发出。
在 PHP 7.0 之前,由于 Facebook 旗下的 HHVM(Facebook 开源的 PHP 执行引擎)项目带来的竞争,PHP 社区内部关注的焦点一直是性能。PHP 7.0 中的大多数核心更改都包含在 PHPNG 补丁中,该补丁显著改进了 PHP 在其核心上使用内存和 CPU 的方式。
自 PHP 7.0 以来,陆续发布了多个更新以优化性能,但 PHP 的性能已经逐渐逼近天花板。因此,引入 JIT 支持将为 PHP 释放更多性能。
但 PHP 官方博客同样提到:JIT 可能不会让网站运行更快,因为在一般情况下,用 PHP 编写的应用程序是 I/O 绑定的,而 JIT 在 CPU 绑定的代码上工作得最好。
在即将发布的 PHP 7.4 版本中,将不会引入 JIT 支持。
评论