jit 对 php 来说意味着什么?

php 8 有一个重要特性是 JIT。我有一些疑惑:

Q1 : JIT 对于 IO 密集型任务是否作用有限?

Q2 : JIT 特性可能给 PHP 带来的最大的变化是什么?

新手提问,希望不吝赐教。

阅读 5.8k
6 个回答

个人见解,仅供参考哈。。
首先是Q1JIT对于IO密集型任务确实作用有限。目前,PHP代码只能被编译为Zend虚拟机可执行的opcode指令,这与计算机可直接执行的机器指令还是有区别的。引入JIT以后,PHP代码就可以被编译为机器指令而由计算机直接运行,不再需要解释器逐行运行opcode,自然就快了。同时,这个“快”又仅是对CPU而言的。因为运行指令的是CPU,而这个过程中IO的问题并没有解决,只是解决了“CPU计算”的问题。所以,个人认为JIT对于IO密集型任务确实作用有限的

Q2:其实在Web领域,大多数的问题并不在CPU计算上,而是在IO上,目前IO的问题使用Swoole也可以很好地解决了。而引入了JIT之后,PHP的计算能力又会有提升,所以不排除这会为PHP打开一扇新的大门,可能JIT只是开一个头,后续会有更多的组合拳,给PHP带来更多的可能。。

IO 的问题,可以使用 Swoole 来处理,PHP8+Swoole4将会是个大杀器!!!

这是 PHP 关于 JIT 的 RFC 页面上的介绍,中的。
clipboard.png

They resulted in no substantial performance gains for typical Web apps;

翻译过来就是「它们并没有为典型的Web应用程序带来实质性的性能提升」 ,也就是说 JIT 对于 WEB 程序来说,基本没有变化,主要是用于密集运算方向,比如以 Swoole 为中心的常驻式的程序,可以作为 IoT 行业多一个选择,可以进入处 Web 以外的行业,并拥有比自身之前更好的性能。

clipboard.png

Secondly - using JIT may open the door for PHP being more frequently used in other, non-Web, CPU-intensive scenarios - where the performance benefits will actually be very substantial - and for which PHP is probably not even being considered today.

最后

你还可以在这里获得更多。

可以确信的第一条是,JIT让某些程序更快,至于到底哪些程序胡更快,还是等做出来了再说。

第二条是: 可以只发行生成的字节码,而不发布源程序。这说明PHP对商业公司更加友好了。开源和商业是两条不通的路,你知道的。随着JIT的发展,商业化PHP编译器可能会诞生。

其实对于普通应用而言,跟你有啥关系啊
对于一些cpu密集型的应用,会有一些改善。
相当于php性能优化的另一个方向,只是投入产出比没那么明显

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题