php 8 有一个重要特性是 JIT。我有一些疑惑:
Q1 : JIT 对于 IO 密集型任务是否作用有限?
Q2 : JIT 特性可能给 PHP 带来的最大的变化是什么?
新手提问,希望不吝赐教。
php 8 有一个重要特性是 JIT。我有一些疑惑:
Q1 : JIT 对于 IO 密集型任务是否作用有限?
Q2 : JIT 特性可能给 PHP 带来的最大的变化是什么?
新手提问,希望不吝赐教。
这是 PHP 关于 JIT 的 RFC 页面上的介绍,中的。
They resulted in no substantial performance gains for typical Web apps;
翻译过来就是「它们并没有为典型的Web应用程序带来实质性的性能提升」 ,也就是说 JIT 对于 WEB 程序来说,基本没有变化,主要是用于密集运算方向,比如以 Swoole 为中心的常驻式的程序,可以作为 IoT 行业多一个选择,可以进入处 Web 以外的行业,并拥有比自身之前更好的性能。
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编译器可能会诞生。
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答834 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答711 阅读✓ 已解决
个人见解,仅供参考哈。。
首先是
Q1
:JIT
对于IO
密集型任务确实作用有限。目前,PHP
代码只能被编译为Zend虚拟机
可执行的opcode指令,这与计算机可直接执行的机器指令还是有区别的。引入JIT
以后,PHP
代码就可以被编译为机器指令而由计算机直接运行,不再需要解释器逐行运行opcode
,自然就快了。同时,这个“快”又仅是对CPU
而言的。因为运行指令的是CPU
,而这个过程中IO
的问题并没有解决,只是解决了“CPU计算”的问题。所以,个人认为JIT对于IO密集型任务确实作用有限的。Q2
:其实在Web
领域,大多数的问题并不在CPU计算
上,而是在IO
上,目前IO
的问题使用Swoole
也可以很好地解决了。而引入了JIT
之后,PHP
的计算能力又会有提升,所以不排除这会为PHP
打开一扇新的大门,可能JIT
只是开一个头,后续会有更多的组合拳,给PHP
带来更多的可能。。