写点什么

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

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

关注

评论

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

原理剖析:一文搞懂 Kafka Producer(下)

AutoMQ

云计算 大数据 数据流 Kafka Producer

【榜单解析】2025年数据安全性超强的10款项目管理软件,你选对了吗?

薛同学

Nexpose 7.6.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

两个案例带你看懂YashanDB执行计划

YashanDB

数据库 yashandb

飞算JavaAI:让开发从 “累” 变 “爽” 的神奇转变!

飞算JavaAI开发助手

SD-WAN:优化SaaS应用访问的高效解决方案

Ogcloud

网络加速 SD-WAN SD-WAN组网 网络加速服务 SD-WAN国际专线

简单几个步骤完成 Oracle 到金仓数据库(KingbaseES)的迁移目标

NineData

oracle NineData Oracle 数据同步工具 KingbaseES 金仓数据库

解构低代码驱动的数字化转型路径:云原生平台实现业务系统低成本快速迭代

不在线第一只蜗牛

低代码

AI+智能财务 | 智能决策分析,实现更具专业性和前瞻性的决策!

用友智能财务

AI 财会

YashanDB物理规格

YashanDB

数据库 yashandb

ThreadPoolExecutor 详解

秃头小帅oi

炫技赛火热开启!别卷 DeepSeek 了!飞算 JavaAI 能让你少写 100 万行代码

飞算JavaAI开发助手

大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!

不在线第一只蜗牛

人工智能 AI

Fortify Static Code Analyzer 24.4 for macOS, Linux & Windows - 静态应用安全测试

sysin

VMware NSX 4.2.1.3 发布 - 网络安全虚拟化平台

sysin

nsx

B2B企业是否建议布局TikTok?

Ogcloud

TikTok tiktok运营 tiktok营销 tiktok引流

数学到底在哪里支撑着编程

易成研发中心

解锁开发新姿势!飞算JavaAI,堪称业界最牛 “AI 教练”,带你飞速蜕变

飞算JavaAI开发助手

语音 AI 招聘平台 ConverzAI 融资 1600 万美元;OpenAI 将整合 GPT 和 o 系列模型丨日报

声网

浙江AI最强阵容出炉,中之杰智能跻身前列

财见

WPS Office for Mac 7.2.0 - 写作、表格处理、PPT 制作和 PDF 编辑

sysin

wps

东南亚恐惧之下的科技错位

脑极体

AI

YashanDB数据类型规格

YashanDB

数据库 yashandb

DeepSeek 预言要失业?速来飞算 JavaAI 炫技赛抢 “免死金牌”

飞算JavaAI开发助手

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