PHP 8引入JIT支持,以提高CPU性能(27)

发布于2019-04-20 11:27:20

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支持。