博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 8 确认支持 JIT
阅读量:6828 次
发布时间:2019-06-26

本文共 1502 字,大约阅读时间需要 5 分钟。

  hot3.png

一直以来,大家都在讨论 PHP 8 中是否会支持 JIT(Just-In-Time)即时编译执行功能,最新消息是官方已经确认将其引入。

Include JIT into PHP 8?
Real name Yes No
 (ab) success.png  
 (ashnazg) success.png  
 (beberlei) success.png  
 (brandon) success.png  
 (bwoebi) success.png  
 (carusogabriel) success.png  
 (cmb) success.png  
 (cpriest) success.png  
 (dams) success.png  
 (danack)   success.png
 (derick) success.png  
 (diegopires) success.png  
 (dmitry) success.png  
 (duncan3dc) success.png  
 (emir) success.png  
 (galvao) success.png  
 (guilhermeblanco) success.png  
 (jhdxr) success.png  
 (jmikola) success.png  
 (jpauli) success.png  
 (jwage) success.png  
 (kalle) success.png  
 (klaussilveira) success.png  
 (krakjoe) success.png  
 (laruence) success.png  
 (lcobucci) success.png  
 (levim)   success.png
 (malukenho) success.png  
 (mariano) success.png  
 (mbeccati) success.png  
 (mike) success.png  
 (narf) success.png  
 (neeke) success.png  
 (nikic) success.png  
 (ocramius) success.png  
 (pajoye) success.png  
 (peehaa) success.png  
 (petk) success.png  
 (pmmaga) success.png  
 (pollita) success.png  
 (remi) success.png  
 (reywob) success.png  
 (rtheunissen) success.png  
 (salathe) success.png  
 (sammyk) success.png  
 (stas) success.png  
 (svpernova09) success.png  
 (tianfenghan) success.png  
 (wjx) success.png  
 (yunosh) success.png  
 (zeev) success.png  
 (zimt) success.png  
Final result: 50 2

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 JIT 对于使用 PHP 的网站来说提速可能并不明显,因为 JIT 在 CPU 密集型的代码上效果最好,而一般情况下,用 PHP 编写的程序都是 I/O 密集型的。简单来说就是,PHP 程序往往受限于 I/O 而不是 CPU,使 PHP 代码运行速度变慢的因素往往是它们正在执行的 I/O 操作,包括连接、读取和写入数据库、高速缓存、文件与套接字等。

PHP 中 CPU 密集型代码的一个例子是 。

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

转载地址:http://meykl.baihongyu.com/

你可能感兴趣的文章
Cent OS 命令行和窗口界面默认登录切换方法
查看>>
iphone 如何利用application load 上传应用程序
查看>>
iOS 开发中关于UIImage的知识点总结
查看>>
也来说说C#异步委托
查看>>
初识函数
查看>>
4.1.1 存储器的层次
查看>>
linux 根据端口查看系统进程
查看>>
ORACLE之莫名---ORA-02290: 违反检查约束条件
查看>>
SWFUpload V2.2.0 详细说明文档
查看>>
Oracle - SQL 错误: ORA-00917: 缺失逗号
查看>>
doj常用包
查看>>
Windows下 VM12虚拟机安装OS X 10.11 和VM TOOLS
查看>>
坦克大战底层框架搭建并思路分析(一)
查看>>
python 读取大文件越来越慢
查看>>
python模块详解 logging
查看>>
Asp.Net MVC4.0 官方教程 入门指南之六--查看Edit方法和Edit视图
查看>>
C#文件操作大全
查看>>
python 数字和字符串转换问题
查看>>
sublime插件使用整理
查看>>
Codeforces Round #402 (Div. 2)
查看>>