设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 765|回复: 0
收起左侧

php8

[复制链接]
发表于 2020-6-15 20:54:48 | 显示全部楼层 |阅读模式
一直以来,大家都在讨论 PHP 8 中是否会支持 JIT(Just-In-Time)即时编译执行功能,最新消息是官方已经确认将其引入。
Include JIT into PHP 8?
Real name
Yes
No
ab (ab)

                               
登录/注册后可看大图
ashnazg (ashnazg)

                               
登录/注册后可看大图
beberlei (beberlei)

                               
登录/注册后可看大图
brandon (brandon)

                               
登录/注册后可看大图
bwoebi (bwoebi)

                               
登录/注册后可看大图
carusogabriel (carusogabriel)

                               
登录/注册后可看大图
cmb (cmb)

                               
登录/注册后可看大图
cpriest (cpriest)

                               
登录/注册后可看大图
dams (dams)

                               
登录/注册后可看大图
danack (danack)

                               
登录/注册后可看大图
derick (derick)

                               
登录/注册后可看大图
diegopires (diegopires)

                               
登录/注册后可看大图
dmitry (dmitry)

                               
登录/注册后可看大图
duncan3dc (duncan3dc)

                               
登录/注册后可看大图
emir (emir)

                               
登录/注册后可看大图
galvao (galvao)

                               
登录/注册后可看大图
guilhermeblanco (guilhermeblanco)

                               
登录/注册后可看大图
jhdxr (jhdxr)

                               
登录/注册后可看大图
jmikola (jmikola)

                               
登录/注册后可看大图
jpauli (jpauli)

                               
登录/注册后可看大图
jwage (jwage)

                               
登录/注册后可看大图
kalle (kalle)

                               
登录/注册后可看大图
klaussilveira (klaussilveira)

                               
登录/注册后可看大图
krakjoe (krakjoe)

                               
登录/注册后可看大图
laruence (laruence)

                               
登录/注册后可看大图
lcobucci (lcobucci)

                               
登录/注册后可看大图
levim (levim)

                               
登录/注册后可看大图
malukenho (malukenho)

                               
登录/注册后可看大图
mariano (mariano)

                               
登录/注册后可看大图
mbeccati (mbeccati)

                               
登录/注册后可看大图
mike (mike)

                               
登录/注册后可看大图
narf (narf)

                               
登录/注册后可看大图
neeke (neeke)

                               
登录/注册后可看大图
nikic (nikic)

                               
登录/注册后可看大图
ocramius (ocramius)

                               
登录/注册后可看大图
pajoye (pajoye)

                               
登录/注册后可看大图
peehaa (peehaa)

                               
登录/注册后可看大图
petk (petk)

                               
登录/注册后可看大图
pmmaga (pmmaga)

                               
登录/注册后可看大图
pollita (pollita)

                               
登录/注册后可看大图
remi (remi)

                               
登录/注册后可看大图
reywob (reywob)

                               
登录/注册后可看大图
rtheunissen (rtheunissen)

                               
登录/注册后可看大图
salathe (salathe)

                               
登录/注册后可看大图
sammyk (sammyk)

                               
登录/注册后可看大图
stas (stas)

                               
登录/注册后可看大图
svpernova09 (svpernova09)

                               
登录/注册后可看大图
tianfenghan (tianfenghan)

                               
登录/注册后可看大图
wjx (wjx)

                               
登录/注册后可看大图
yunosh (yunosh)

                               
登录/注册后可看大图
zeev (zeev)

                               
登录/注册后可看大图
zimt (zimt)

                               
登录/注册后可看大图
Final result:502
PHP 实现了一个虚拟机 Zend VM,它会将人类可读脚本编译成虚拟机理解的指令,也就是操作码,这个执行阶段就是“编译时(Compile Time)”。在“运行时(Runtime)”执行阶段,虚拟机 Zend VM 会执行这些编译好的操作码。
通常编译时与运行时两个阶段是独立分开的,脚本编译完成后,像 APC 与 OPCache 这样的字节码缓存组件会缓存这些操作码。而 JIT 去掉了编译时阶段,它将这编译时与运行时两个阶段合为一体,实现即时编译与执行。
JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。
虽然自 PHP 7.0 以来,通过优化核心数据结构 HashTable、强化 Zend VM 中某些操作码与持续改进 OPCache 的 Optimizer 组件等具体措施,PHP 性能得到了显著提升,但是实际上这些优化似乎已经走到极限了。现在 JIT 从底层着手,被认为是目前提升 PHP 性能的最佳出路。
关于是否引入 JIT 的官方投票结果已于近日公布,因为大部分核心开发者投了赞成票,所以 PHP 8 中将会支持 JIT
另外值得一提的是,PHP JIT 对于使用 PHP 的网站来说提速可能并不明显,因为 JIT 在 CPU 密集型的代码上效果最好,而一般情况下,用 PHP 编写的程序都是 I/O 密集型的。简单来说就是,PHP 程序往往受限于 I/O 而不是 CPU,使 PHP 代码运行速度变慢的因素往往是它们正在执行的 I/O 操作,包括连接、读取和写入数据库、高速缓存、文件与套接字等。
PHP 中 CPU 密集型代码的一个例子是 Zend/bench.php

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-3 21:04 , Processed in 0.054995 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表