消息:官方确认给PHP 8引入JIT即时编译执行功能

发布时间:2019-04-01 10:07 编辑:wenxiang 来源:系统族
一直以来,大家都在讨论 PHP 8 中是否会支持 JIT(Just-In-Time)即时编译执行功能,最新消息是官方已经确认将其引入。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


新游上线
相关专题 更多+
  • 约车软件哪个便宜好用
  • 免费听歌app推荐
  • 招聘软件哪个最好用
约车软件哪个便宜好用
约车软件哪个便宜好用

随着信息技术的发展,现在约车软件已经成为了很多用户出行的第一选择。而近些年有很多的约车软件出现在人们的视野中,那么我们如何从这么多的约车软件中找到最便宜最好用的呢?系统族游戏网为大家带来了国内较好用的约车软件合集,需要的朋友可以来看看。

免费听歌app推荐
免费听歌app推荐

歌曲的魅力是无穷的,它能够传递各种快乐、悲伤、激动、兴奋的情绪,让聆听者感受各种各样的灵魂触动。今天系统族游戏网要给大家分享好用的免费听歌APP。如果你也喜欢听歌,那么一定不可缺少一款合意的听歌软件,下面就一起来看看免费的听歌软件吧。

招聘软件哪个最好用
招聘软件哪个最好用

马上就要进入到毕业季了,又即将迎来了一大波社畜踏入社会。而在此之前,求职是必经的一个过程,如果你没有人脉介绍,那么可以选择招聘软件来寻找适合自己的职位。那么用什么招聘软件最好呢?今天系统族游戏网为大家带来好用的招聘软件,帮助广大求职人员找到自己合适的职位。

猜你喜欢