QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Facebook 如何重新设计 HHVM JIT 编译器的性能

  • 2016-10-18
  • 本文字数:818 字

    阅读完需:约 3 分钟

2013 年夏天,Facebook 工程师开始对 HHVM JIT 编译器进行重大的重新设计,这次重新设计使得 Facebook Web 服务器 CPU 的使用率整体降低了 15%。Facebook 工程师 Guilherme Ottoni 最近描述了Facebook 如何在JIT 编译器中利用性能分析引导优化(PGO)技术达到这一效果。

性能分析引导优化技术主要采用运行时分析,例如,识别出更频繁执行的代码,以改进代码的生成。由于编译器和运行时环境的集成特性,PGO 更适合集成到动态编译器和JIT 编译器中。

Facebook 工程师专注于两个主要的目标:利用性能分析的信息优化编译时作出的决策,以帮助编译器识别更大的专用类型编译区域(即可以为给定的已知类型生成的代码进行优化的区域),从而避免类型检查的开销。为了实现这一点,HHVM JIT 编译器必须学习如何转换任意代码区域,而不仅仅是 tracelet ,tracelet 是非常基础的可以独立转换成机器代码的专用类型块。Tracelet 不会任意增长,因为它的定义是:当无法确定块的输入类型或者当 JIT 编译器不能确定分支的方向时,tracelet 就会结束。

Facebook 工程师概括 tracelet 采取的第一步是,基于性能分析信息将其中的几个组合在一起。通过这样做,可以减少不同 tracelet 进入和退出的开销,并且实现更高级的 cross-tracelet 优化,例如提升循环不变式计算到循环外。

在基本的 tracelet 外构建更大的区域具有不违反现有 JIT 优化器和后端中任何假设的优点,这些假设是紧密围绕这一概念设计的。在第二个阶段,Facebook 工程师开始重新设计这些组件,以便能够处理具有任意控制流的区域。这一努力在 2015 年春天完成了,通过将 CPU 使用率降低 15%,显著提高了 JIT 编译器的性能,相比第一阶段的改进提升了两倍。

查看英文原文: How Facebook Redesigned the HHVM JIT Compiler for Performance


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-10-18 19:001536
用户头像

发布了 31 篇内容, 共 10.5 次阅读, 收获喜欢 0 次。

关注

评论

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

即时通讯技术文集(第38期):IM代码入门实践(Part2) [共15篇]

JackJiang

网络编程 即时通讯 IM

一键自动化博客发布工具,用过的人都说好(知乎篇)

程序那些事

工具 程序那些事 自动发布

不要急着辞职!

老张

面试 转岗 辞职

国际顶会认可!KaiwuDB 论文入选 ICDE 2024🥂

KaiwuDB

#数据库

MYSQL造数据占用临时表空间

不在线第一只蜗牛

MySQL 数据库

继Bakkt之后的又一全新力作,ICE推出AI高频交易平台

科技汇

火山引擎VeDI:A/B测试平台指标能力升级,助力企业提升精细化运营效率

极客天地

DashVector + DashScope升级多模态检索

DashVector

数据库 后端 向量检索 大模型

即将到期的30亿美元ETH期权将如何影响ETH走势?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Apache Doris 2.1.3 版本正式发布

SelectDB

数据库 大数据 数据湖 数据分析 物化视图

软件测试学习笔记丨App性能测试方案-霍格沃兹

测试人

软件测试 性能测试 测试开发

湖南省气象信息中心:部署运行省人工智能气象应用支撑平台

ModelWhale

大数据 气象

丰富企业 AI 存储选择丨焱融科技与安擎完成兼容性互认证

焱融科技

焱融科技 高性能存储 存力 AI存储 安擎

和鲸科技联合中软国际教育,发布 AI 数智科研联合解决方案

ModelWhale

人工智能 科学数据

EasyMR 基于国产化信创的适配实践技术详解

袋鼠云数栈

大数据 信创 计算引擎 大数据计算引擎 国产信创

性能测试中常用的性能指标有哪些?请解释每个指标的含义

测试人

软件测试 性能测试

MES系统适用于哪些行业?MES系统具体功能有哪些?

万界星空科技

工业互联网 制造业 生产管理系统 mes 万界星空科技

阿布扎比:自 2023 年第一季度以来,资本之都 ADGM 资产管理规模创历史新高的 211%

财见

继Bakkt之后的又一全新力作,ICE推出AI高频交易平台

科技热闻

如何优雅地编写缓存代码

阿里技术

编码实践 缓存代码

渣打国际商业银行与环旭电子完成签署3.2亿美元可持续金融绩效连结贷款

财见

百度发布Comate代码知识增强2.0,国内首个支持实时检索智能代码助手

不叫猫先生

人工智能 百度 AI 百度Comate

和鲸携手中国石油大学,助力首届青岛市公共数据创新应用大赛璀璨启程

ModelWhale

公共数据

Facebook如何重新设计HHVM JIT编译器的性能_PHP_Sergio De Simone_InfoQ精选文章