写点什么

PHP 8 引入 JIT 支持,以提高 CPU 性能

2019 年 4 月 02 日

PHP 8引入JIT支持,以提高CPU性能

3 月 30 日消息,随着绝大多数人赞成合并的投票结果出炉,PHP 8 将正式引入 JIT(Just-In- Time 即时编译) 支持。引入 JIT 支持将进一步提升 PHP 性能,JIT 编译器被视为 PHP 版本中下一个主要的进步。今年 PHP 7.4 版本将发布,消息称 PHP 8 可能要等到 2021 年底。


JIT 并非是新技术,很多语言例如 Java 早已实现。JIT 的思想很简单,即在程序运行时动态对程序进行编译,生成平台相关的机器码(比如运行它的机器 CPU 的本地代码),从而加快程序的运行速度。此前,PHP 的 JIT 支持已经通过一个独立的分支进行了一段时间的开发,投票结束后,将正式合并到 PHP 8 中。


在 PHP 中,JIT 将为 Zend Vm 生成的指令作为中间表示,并发出依赖于体系结构的机器代码,这样代码的宿主就不再是 Zend Vm,而是直接由 CPU 发出。


在 PHP 7.0 之前,由于 Facebook 旗下的 HHVM(Facebook 开源的 PHP 执行引擎)项目带来的竞争,PHP 社区内部关注的焦点一直是性能。PHP 7.0 中的大多数核心更改都包含在 PHPNG 补丁中,该补丁显著改进了 PHP 在其核心上使用内存和 CPU 的方式。


自 PHP 7.0 以来,陆续发布了多个更新以优化性能,但 PHP 的性能已经逐渐逼近天花板。因此,引入 JIT 支持将为 PHP 释放更多性能。


但 PHP 官方博客同样提到:JIT 可能不会让网站运行更快,因为在一般情况下,用 PHP 编写的应用程序是 I/O 绑定的,而 JIT 在 CPU 绑定的代码上工作得最好。


在即将发布的 PHP 7.4 版本中,将不会引入 JIT 支持。


2019 年 4 月 02 日 17:046897
用户头像
小智 InfoQ 主编

发布了 397 篇内容, 共 308.8 次阅读, 收获喜欢 1721 次。

关注

评论

发布
暂无评论
发现更多内容

问世间异步为何物?

架构师修行之路

微服务 异步

不一样的面向对象(二)

书旅

php 面向对象

java安全编码指南之:可见性和原子性

程序那些事

Java java安全编码 java编码指南 java安全编码指南

如何设计Go语言中的channel

soolaugust

go channel goroutines

Dolphinscheduler系统架构设计

dll

Apache DolphinScheduler

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 模型的本地训练与评估

Alex

tensorflow 模型训练 keras

缓存解决方案-技术专题-Caffeine Cache

李浩宇/Alex

架构师训练营第 1 期第 2周作业

du tiezheng

极客大学架构师训练营

三步带你开发一个短链接生成平台

Geek_Willie

Java SpreadJS Node

上班路上也是一道美景

xcbeyond

生活 摄影 摄影征文

自己动手写SQL执行引擎

无毁的湖光

Java MySQL 数据库 Linux 算法

Python 自动化测试全攻略:五种自动化测试模型实战详解

Geek_Willie

自动化测试

Redis做分布式锁可能不那么简单

架构师修行之路

分布式 分布式锁

使用Grafana + simpod-json-datasource快速搭建数据看板

诸葛小猿

Grafana 数据可视化 simpod-json-datasource

甲方日常 22

句子

Vue 工作 随笔杂谈 日常

关于Java 编译Servlet或者自定义Tag,引入包的问题

谷鱼

Java

项目实战,动态增删form表单

麦叔

jquery 克隆

关于Java Servlet找不到自定义包或者第三方包

谷鱼

classes

巡展2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

收藏+下载!Flink 社区最全学习渠道汇总

Apache Flink

flink

架构师训练营第 1 期第 2 周学习总结

du tiezheng

极客大学架构师训练营

Go中的HTTP请求之——HTTP1.1请求流程分析

新世界杂货铺

go golang HTTP Go web

架构师训练营第 2 周作业

netspecial

极客大学架构师训练营

面试官:讲讲Redis的五大数据类型?如何使用?(内含完整测试源码)

冰河

redis Jedis JedisCluster

让世界为之赞叹的开源项目,除了Linux,你知道Git吗?

小Q

Java git 学习 程序员 面试

高难度对话读书笔记—认知篇2

wo是一棵草

监控应用,应该监控什么?

小清新同学

云计算 运维 监控

MySQL varchar类型最大值,原来一直都理解错了

flyer0126

MySQL varchar

程序执行太慢?快来学习SIMD加速技术,这个案例下的加速效果我也没想到(附带动手实验)

Optimize-Lab

go 优化代码 优化技巧 开源社区 simd

如何快速制造OOM

Since

JVM OOM

永续合约系统开发源码,区块链合约交易所搭建

WX13823153201

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

PHP 8引入JIT支持,以提高CPU性能-InfoQ