本文得出的结论,归结于仅运行纯CPU任务的脚本的基准测试结果,不需要I/O操作的任务,例如访问文件、网络或数据库连接。
这些是纯 CPU 基准测试。它们并未涵盖 PHP 性能的所有方面,并且它们可能无法代表实际情况。然而,结果足以证明一些评论是合理的:
- PHP 5.1 的性能是 PHP 5.0 的两倍多
- 5.2 和 5.3 版本带来了自己的一组性能增强,但它们并不像 5.1 版本那样引人注目。
- 下一个重大的性能改进来自 5.4 版。
- opcache 扩展与 5.5 和 5.6 版本捆绑在一起。当同一脚本从 Web 服务器连续运行时,由于代码加载速度更快,因此性能增强。但是,对于在 CLI 模式下执行的脚本,opcache 不会真正显示其优势。
- PHP 7.0 是性能方面的重大突破。Zend 引擎已经过完全重新设计,我们可以在这里看到这项工作的结果。
- PHP 7.1 在opcache扩展中引入了操作码优化。这再次解释了与 7.0 相比上表中显示的性能提升。
- 实验性 JIT 分支引入了另一个重大突破,得益于 JIT,它可以为您现有的代码提供巨大的性能改进,但在某些情况下,你可能会注意到速度提高不超过几个百分点。在最坏的情况下,它甚至会变慢,因为编译不会产生更快的代码。
本文展示了 3 个纯 CPU 基准测试脚本的结果。在运行通常执行对数据库或文件的访问的典型 PHP 应用程序时,它不会给出实际的数字,但我认为它们提供了你对代码的某些部分可能期望的性能改进的想法。
PHP JIT 编译器和 PHP 8 性能改进预期
即时(JIT) 编译,这是一种在运行代码之前将代码转换为另一种格式的技术,例如底层机器 CPU 的本机代码。JIT 应该让你的程序运行得更快。
PHP 8 之前有另一个主要版本,可能是 PHP 7.2。但可以公平地假设,当 PHP 8 发布时,它已经包含了当前实验性 JIT 分支的好处。