什么是PHP8 JIT?它能给PHP世界带来哪些优势呢?从我的理解上来说,它用于性能提升。
PHP8中的JIT对性能来说并不是一个改变游戏规则的因素。它会稍微提高一些性能,但不像PHP7那样显著。已经有一些基准测试显示,在基本基准测试(CPU密集型任务)中性能要好得多,但在实际应用中并没有太大变化。
CPU密集型任务:
- nikic/PHP-Parser的基准测试由Nikita Popov进行,运行速度提高了约1.3倍
- 使用Amp编写的Hello World应用程序的速度提高了约5%
- MessagePack基准测试显示加速了1.3到1.5倍
全新Laravel网页的结果:
- PHP 7.3:131.37次/秒
- PHP 8.0 + JIT:133.57次/秒
相对于 PHP 8 性能而言,JIT 的贡献来源
- 它打开了将 PHP 作为一个高性能语言用于 Web 以外的领域的大门。
- JIT 可以随着时间的推移进行改进,我们的代码也可以。
如果 PHP 代码可以在运行时解释而不是通过虚拟机,则意味着在未来 PHP 自身在 CPU 密集型任务(如机器学习)方面的机会更多。
PHP 中有几种 JIT 配置类型。您可以设置优化级别、触发器、寄存器分配和特定于 CPU 的优化标志。我不会把所有内容都粘贴出来,但可以在文档中找到(目前还没有官方 JIT 文档,只有 RFC)。
opcache
的 PHP 8.2.0 上,完全相同的测试只需要 2 分钟和 15 秒,速度提升了 25%(注意,我在 Windows 上进行了测试,并且上述持续时间是多次测试运行的平均值)。 - Top-Master