网易首页 > 网易号 > 正文 申请入驻

Meta 发布开源 React 编译器:开发者无痛升级,爽翻天!

0
分享至

作者 | Loraine Lawson

译者 | 刘雅梦

策划 | Tina

Meta 周三在拉斯维加斯举行的 React 大会上发布了 React 的开源编译器,并进行了直播。Meta React 团队成员、用户界面工程师 Joe Savona 表示,该团队在过去几年中一直在开发编译器。

“React Compiler 会自动优化组件和钩子,因此只有 UI 的最小部分会随着状态的变化而更新。”Savona 告诉听众。“所以这看起来很神奇。”

为什么要使用 React Compiler?

为什么解释语言需要编译器?Savona 将 React Compiler 与 Meta 的 Hermes 和 V8 Alliance 的 V8 进行了比较,后者是包含了编译器的 JavaScript 引擎。

“React Compiler 更像 TypeScript,或者 JavaScript 引擎中的编译器,比如 V8 或 Hermes,”他说到。“它将我们的代码分解成单独的表达式,并构建一个控制流和数据流图。它执行复杂的优化,如死代码消除、常量传播、类型推断,甚至别名分析等等。”

他补充道:“这些优化通常会出现在 JavaScript 引擎或 Rust 或 C++ 等语言的编译器中。”。他继续说道:“React Compiler 将这些思想应用于 JavaScript,在不牺牲开发者体验的情况下提高了性能。”。他说:“代码不会改变,但在默认情况下,应用程序和更新会更快。”

“事实上,我们的代码变得更加干净和简洁了,因为我们不需要手动记忆化备忘,”Savona 补充道。记忆化备忘技术(Memoization)是一种利用缓存的优化技术。

React Compiler 在代码中的应用

他提到了一个用 React 构建的媒体播放器的早期演示。他说,没有使用备忘录调用,没有随机和不必要的回调函数,但代码中包含了许多开发人员可能不会经常考虑的信息。

“例如,考虑过滤后的歌曲列表,”他说到。“React 显然需要再次过滤歌曲列表并更新播放列表。这段代码还告诉我们相反的情况;如果歌曲没有改变,那么 React 就不应该更新过滤后的歌曲,也不需要更新播放列表”

这正是编译器启用后所发生的事情,他补充道:当歌曲没有变化时,就没有必要更新播放列表。

“我们之所以能够理解这一点,是因为 JavaScript 和 React 有明确的工作规则,我们已经学会了这些规则。”Savona 说到,“我们每天都在阅读代码、编写代码、调试代码以及偶尔测试代码时使用它们。”

编译器可以学习理解那些规则。然后,“它可以’以与我们非常相似的方式‘’看到‘代码,只是它要彻底得多。”他补充道。

他说,它可以将相同的过程应用于代码中的每个值,创建表述一个数据如何在用户界面中移动的计算图。

“编译器知道 React 的规则,它还知道一些额外的东西,”他继续说道。“例如,它知道集合状态函数实际上不会改变,所以编译器不必考虑该值是否可以更新。所以我们可以删除这种依赖边。”

那么,唯一需要更新的就是现在播放的内容,而不是整个播放列表。

“最棒的是,所有这些信息都来自我们今天已经在写的 React 组件和钩子。”他说到。“没有需要学习的 API。没有必要改变我们编写代码的方式。我们可以简单地利用现今代码中已经存在的所有信息。”

他补充道,这些类型的精确 UI 更新有时被称为细粒度响应。

随后,Meta 软件工程师 Mofei Zhang 上台展示了编译器在 Meta 应用程序上的运行情况。在具有大量交互性或组件的页面上,Meta 发现开发者开始进行权衡。

“我们看到的一小部分代码样本很难阅读。”张说到。“这段代码包含了很多手动优化,这有助于让 UI 感觉更敏捷,但也让代码更难理解。”

她展示了一个代码片段,其中有将近 20 个地方是开发人员手工优化的对象。

Meta 在 Instagram 和 Quest 上

尝试使用 React Compiler

在 2023 年,Meta 开始在两个应用程序上使用 React Compiler:Instagram.com 及其 Quest 商店,这是 Meta 的 Quest VR 设备的应用程序商店。她说,编译器优化版本的速度是以前的两倍多。初始加载时间和跨页面导航时间提高了 12%。而且对内存使用率或整体崩溃情况都没有影响,这可以通过内存不足的错误反映出来。导航任务加载速度至少提高了 4%。Instagram 在每条路线上平均提高了 3%。

“在 Meta,这真的是一件大事,”张说到。“为了将这些数字放在上下文中,工程师们梳理了这些应用程序的每一个细节,添加了数千个记忆化备忘调用。”

她补充道,通常情况下,在一个特定的页面上,只要在指标上提高 1 或 2 个百分点,比如第一次绘制,就会是一件大事。

“React Compiler 几乎大大提高了它推出的每个页面的性能。”她说到。“在优化程度较低的应用程序上,我们发现 React Compiler 可以添加超过 15 倍于源代码中已有的记忆量。”

她总结道,使用编译器将使开发人员能够 在尚未手动优化的应用程序上进行快速交互,同时提高已优化应用程序的可读性和可维护性。开发人员甚至可以去掉手工编码的记忆化备忘。

她说:“我们已经看到 React 编译器甚至可以提高应用程序的速度上限,因为它可以比开发人员通过嵌套和条件记忆化存储以及复杂的静态分析进行更多的优化。”。“我们将继续推出更多的应用程序来迭代编译器。”

除了 开源代码 外,React Compiler 还为那些想要探索其工作原理的开发人员提供了 一个游乐场。

最后,Savona 再次上台结束了演讲。

“React Compiler 允许开发人员继续编写与我们的习惯完全相同的代码,”他说到。“事实上,正如我们所看到的,我们可以停止使用手动记忆化备忘……React Compiler 可以为实际应用程序提供显著的性能改进。”

https://thenewstack.io/meta-releases-open-source-react-compiler/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
上海G2绝杀广厦夺冠式庆祝,卢伟抱古德温,张镇麟累坏,布朗沮丧

上海G2绝杀广厦夺冠式庆祝,卢伟抱古德温,张镇麟累坏,布朗沮丧

篮球资讯达人
2026-05-28 22:33:33
“国产GPU第一股”摩尔线程开盘大涨468.78%,市值超3000亿元!

“国产GPU第一股”摩尔线程开盘大涨468.78%,市值超3000亿元!

和讯网
2026-05-28 17:32:02
路撑不住,养护成本暴增40%!电车太重让全民买单,车企该改变了

路撑不住,养护成本暴增40%!电车太重让全民买单,车企该改变了

王新喜
2026-05-28 17:08:11
证监会发声!中国是世界经济增长的主要贡献者,境外投资者持有A股流通市值超过4万亿元

证监会发声!中国是世界经济增长的主要贡献者,境外投资者持有A股流通市值超过4万亿元

每日经济新闻
2026-05-28 17:13:27
别阻止娃玩手机!马斯克:刷视频是如何让大脑变笨,得让孩子知晓

别阻止娃玩手机!马斯克:刷视频是如何让大脑变笨,得让孩子知晓

西红柿妈妈
2026-05-27 09:00:18
跌破4400,黄金风暴才刚开始!

跌破4400,黄金风暴才刚开始!

金投网
2026-05-28 17:28:06
邵佳一遭质疑!国足名单最大争议:联赛垫底队3人入选,第二却0人

邵佳一遭质疑!国足名单最大争议:联赛垫底队3人入选,第二却0人

侃球熊弟
2026-05-28 18:44:34
耿同学公开最新4篇疑造假论文,涉及多位院士候选人、杰青、长江学者!不再“举报”

耿同学公开最新4篇疑造假论文,涉及多位院士候选人、杰青、长江学者!不再“举报”

高分子科学前沿
2026-05-28 21:18:01
“8个孩子,没一个拿得出手!”农村父亲晒7儿1女,遭到网友群嘲

“8个孩子,没一个拿得出手!”农村父亲晒7儿1女,遭到网友群嘲

妍妍教育日记
2026-05-28 20:32:42
FBI逮捕CIA高官:家中搜出303根金条、200万美元现金、30多块名表

FBI逮捕CIA高官:家中搜出303根金条、200万美元现金、30多块名表

红星新闻
2026-05-28 11:05:10
“杨梅第一大省”浙江多地主要领导为本地杨梅“站台”

“杨梅第一大省”浙江多地主要领导为本地杨梅“站台”

澎湃新闻
2026-05-28 18:30:26
基辅将被毁灭?俄军图95战轰千里南调,专家评估:大规模轰炸开始

基辅将被毁灭?俄军图95战轰千里南调,专家评估:大规模轰炸开始

混沌录
2026-05-27 21:50:48
炼出来一堆废铁:1958年全民大炼钢铁,究竟炼掉了什么?

炼出来一堆废铁:1958年全民大炼钢铁,究竟炼掉了什么?

浪子说
2026-05-28 00:05:03
男子疑遭妻子家暴后跳楼身亡,死者母亲:当时儿媳持续精神施压,说你不配活在世上;警方决定不予立案,家属提起刑事自诉

男子疑遭妻子家暴后跳楼身亡,死者母亲:当时儿媳持续精神施压,说你不配活在世上;警方决定不予立案,家属提起刑事自诉

大象新闻
2026-05-28 22:10:50
重磅!伊朗发射弹道导弹,美军:已拦截,伊方无端侵略!伊朗最高领袖发声:美以试图制造分裂、瓦解伊朗

重磅!伊朗发射弹道导弹,美军:已拦截,伊方无端侵略!伊朗最高领袖发声:美以试图制造分裂、瓦解伊朗

每日经济新闻
2026-05-28 21:33:14
难以置信!一家长带孩子参观华中科大后,吐槽缺少儿童游乐设施…

难以置信!一家长带孩子参观华中科大后,吐槽缺少儿童游乐设施…

火山詩话
2026-05-28 06:31:23
384:0全票通过!普京已签字,俄罗斯放出终极底牌,中国该效仿吗

384:0全票通过!普京已签字,俄罗斯放出终极底牌,中国该效仿吗

流史岁月
2026-05-28 19:45:03
曝央行要求大型国有银行5月加大放贷力度,但若不解决消费,是治标不治本

曝央行要求大型国有银行5月加大放贷力度,但若不解决消费,是治标不治本

爆角追踪
2026-05-28 17:07:33
震惊!河南一足疗店推出“反方向的钟”,200多给技师洗脚70分钟

震惊!河南一足疗店推出“反方向的钟”,200多给技师洗脚70分钟

火山詩话
2026-05-28 05:53:10
冠军稳了?2026 美加墨世界杯,这三支球队已锁定 99% 夺冠概率!

冠军稳了?2026 美加墨世界杯,这三支球队已锁定 99% 夺冠概率!

枫行带你去旅行
2026-05-28 19:44:30
2026-05-29 02:16:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12439文章数 51909关注度
往期回顾 全部

科技要闻

利润跌27%:快手只剩“可灵”这张牌?

头条要闻

男子疑遭家暴跳楼身亡 母亲:儿媳说"你不配活在世上"

头条要闻

男子疑遭家暴跳楼身亡 母亲:儿媳说"你不配活在世上"

体育要闻

唐斯经历的一切,此刻的他与尼克斯

娱乐要闻

林俊杰七七与大哥嫂子的瓜剪不断理还乱

财经要闻

小米仍需一次创业

汽车要闻

宋Ultra DM-i售12.99万起 选装天神之眼B承诺一年城市领航兜底

态度原创

家居
旅游
健康
艺术
公开课

家居要闻

蜂鸟餐椅 线面交错

旅游要闻

游客在九寨沟被索要"照镜费" 景区:店家随口说的

专家教你辨认“正规外泌体”!

艺术要闻

2026陕西省青年美术作品展 入选油画

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版