百度智能云 云生态狂欢季 热门云产品1折起>>>  

一直以来,大家都在讨论 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: 50 2

https://wiki.php.net/rfc/jit

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。

那么 PHP 中的 JIT 将会在哪里发挥作用呢?答案是数学领域。关于 PHP JIT 的详细介绍,可以查看:https://blog.krakjoe.ninja/2019/03/php-gr8.html

PHP 8 确认支持 JIT相关推荐

  1. PHP 8 中确认支持 JIT!

    一直以来,大家都在讨论 PHP 8 中是否会支持 JIT(Just-In-Time)即时编译执行功能,最新消息是官方已经确认将其引入. PHP 实现了一个虚拟机 Zend VM,它会将人类可读脚本编译 ...

  2. android 北斗定位代码_iPhone 11 确认支持北斗导航,真相来了!

    点击 哎咆科技 关注我们 最近"北斗"火了. 因为7月31日,北斗三号全球卫星导航系统正式开通.截止8月7日,微博话题"北斗三号全球卫星导航系统正式开通"已有5 ...

  3. 俄罗斯总统确认支持自由软件

    <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> 2月23日,Glyn Moody ...

  4. Fuchsia 确认支持安卓 APP;悼念杰出的内核开发者李少华

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.谷歌 Fuchsia 开源操作系统确认支持运行 Android APP 有关 ...

  5. 年度最强旗舰华为Mate20确认支持双卡双通!游戏玩家的福音

    相信很多喜欢用手机玩游戏的人都会有以下几种想要把手机砸了的情况,比如正玩着王者荣耀,马上就要开始团战了,结果这个时候来了一个电话,在最短的时间里接完电话返回游戏,结果发现游戏掉线了,又要重新加载,而加 ...

  6. PHP 接收 UDP包_PHP早已不是十年前的鸟样!!!

    开发者 Brent 发布了一篇文章,详细介绍了 2019 年的 PHP 是怎么样的. Brent 承认 PHP 当前仍然存在一些问题,比如许多核心函数仍然有不一致的方法签名.配置设置还是令人困惑,但是 ...

  7. PHP 8 - 学习/实践

    1.应用场景 了解关注体验最新PHP 8的版本特性,以便在项目中使用. 2.学习/操作 1. 文档阅读 PHP: Hypertext Preprocessor PHP 8 确认支持 JIT - OSC ...

  8. Go 语言 2018 调查报告发布;阿里巴巴全资收购 Teambition

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.Go 语言 2018 调查报告发布 Go 官方博客公布了 2018 年 Go ...

  9. SpringBoot 配置 跨域支持

    跨域资源共享(CORS,请求协议,请求地址,请求端口三者必须相同才是同一服务器,否则都要进行跨域操作)标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站有权限访问哪些资源.另外,规范要求,对那 ...

最新文章

  1. php 贝瑟尔曲线,贝塞尔曲线的应用详解
  2. mapinfo在线地图插件_表格中如何可视化地址数据?用 SeaTable 的地图插件很方便...
  3. 采用Huffman编码进行数据压缩
  4. Mybatis传入参数类型为ListIntergert作为条件进行查询
  5. Python 爬虫工程师必看,深入解读字体反爬虫
  6. 快速显示代码信息工具 Tokei
  7. 概率校准Probability Calibration
  8. 读取文本作为输出字段
  9. 《WF编程》系列之29 - 本地通信事件:HandleExternalEventActivity 活动生成器
  10. java 循环字符_在Java中从循环结果创建字符串
  11. 安装SPSS激活时提示could not create the Java virtual machine
  12. 智慧城市大数据分析系统解决方案
  13. 通过代理下载Google Code
  14. Oracle 10g 的后台进程
  15. tree是不是动词_动名词到底是动词还是名词?
  16. Tomcat下载以及环境变量配置
  17. 安卓/IOS苹果上架
  18. PAT甲级真题 1064 完全二叉搜索树
  19. 企业IT管理员IE11升级指南【7】—— Win7和Win8.1上的IE11功能对比
  20. MSXML应用总结 开发篇(下)

热门文章

  1. python装饰器类-基于类的python装饰器
  2. python零基础有用吗-python零基础入门后的尴尬怎么解决?
  3. python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享
  4. python和c-C和Python我该先学什么?
  5. 学python的好处-python语言的优点和缺点
  6. 使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
  7. python如何实现别人调用自己的API
  8. mybatis中的TypeAliasRegistry
  9. UVa12326 Yummy Triangular Pizza(dfs)
  10. UVa1030 Image Is Everything