写点什么

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:001894
用户头像

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

关注

评论

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

Photoshop Web版本用了哪些CSS技术

南城FE

CSS css3 前端 PhotoShop

Macos ftp传输工具:Transmit 5 中文版 支持M1 附安装

加油,小妞!

ftp传输 Transmit 5

企业该如何选择数字化转型工具?

优秀

数字化转型 数字化工具

大语言模型“战国时代”,未来将如何发展?

申屠鹏会

AI大语言模型

Programming abstractions in C阅读笔记:p184-p195

codists

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

小万哥

Python 程序员 软件 后端 开发

亚马逊云科技大语言模型下的六大创新应用功能

淼.

快速实现一个企业级域名 SSL 证书有效期监控巡检系统

观测云

监控告警 智能巡检 SSL域名

李开复带领零一万物,新一轮融资由阿里云领投,估值超10亿美元

B Impact

CNCC 2023 | 大模型全面革新推荐系统!产学界多位大咖精彩献言

小红书技术REDtech

算法 推荐系统 多模态 大模型 内容理解

瓴羊重磅发布数据服务枢纽“瓴羊港”,推动企业数据流通及价值增长

B Impact

OpenHarmony,奏响中国基础软件的“光辉岁月”

脑极体

开源鸿蒙

API自动化测试​

谷云科技RestCloud

API测试 API 接口

Amazon EC2 Hpc7g 实例现已在更多区域推出

亚马逊云科技 (Amazon Web Services)

Amazon EC2

对话在行人|泰开集团:通过财务数智化转型,实现多重管控要求

用友BIP

对话在行人 数智化领先实践

pycharm pro 2023.2.4中文版 支持M1

加油,小妞!

开发工具 PyCharm Pro

平台工程动态 Monthly News 2023-10

杨振涛

DevOps 平台 平台工程 平台工程社区 PECommunity

一站式解决方案:体验亚马逊轻量服务器的顶级服务与灵活性

-亦世凡华、

【我和极客时间的故事】极客时间带给我的成长

三掌柜

我和极客时间的故事

《用友企业绩效管理白皮书》要点解读之趋势洞察

用友BIP

企业绩效管理

域名证书到期,如何通过nginx更换https证书

javaNice

nginx

第26期 | GPTSecurity周报

云起无垠

跨语言高性能RPC框架Focus发布V1.1.0

dinstone

RPC 高性能 跨语言 RPC框架

垃圾回收是什么?

暂时不愿意透露姓名的热心人士

垃圾回收

罗拉ROLA住宅代理IP市场稳定增长,未来有哪些发展前景?

Geek_ccdd7f

轻量应用服务器:现代云计算的宝贵利器

E₀=mc²

云计算 虚拟化 亚马逊云科技 VPS

用友成功签约国家能源全资子公司-宁波风电

用友BIP

财务数智化

用了低代码工具,让我效率提升了80%

树上有只程序猿

软件开发 低代码开发平台 JNPF

项目管理从混乱到井然有序,就差这10款看板软件了!

彭宏豪95

项目管理 效率工具 项目经理 在线白板 看板工具

Linux Vim批量注释和自定义注释

芯动大师

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