从并发 GC 到字节码 Diffing,Hermes 的下一个十年
引言
Hermes 自 2019 年开源以来,已经从一个"可选优化"变成了 React Native 的默认引擎。2025 年之后,Hermes 团队和 React Native 核心团队将更紧密地合作,路线图中充满了令人兴奋的特性:更好的并发性、更智能的字节码缓存、更深入的 JSI 集成。
本文整理自 React Native 官方社区、Hermes GitHub 讨论和 2025-2026 年的会议演讲,前瞻未来可能到来的关键变化。
一、Hermes V2(2026-2027 计划)
1.1 主要目标
- 并发垃圾回收器改进:将老生代 GC 与 JS 执行完全并行,目标主线程暂停时间 < 0.5ms
- 字节码格式升级:引入更紧凑的编码(类似 WebAssembly 的向量化指令)
- 原生异步 I/O 支持:让 JavaScript 可以直接调用操作系统异步 I/O,减少线程切换
- 增量字节码编译:允许在运行时从源码增量添加代码(替代 eval)
1.2 与 New Architecture 的深度融合
随着 React Native 新架构(Fabric + TurboModules)的全面启用,Hermes 成为唯一官方支持的引擎。未来 Hermes 将直接受益于新架构的优化:
- JS 与原生共享内存:通过 JSI 提供零拷贝数据传递
- 异步渲染优先:Hermes 将提供特殊的调度 API 给 React 调度器
- 更严格的类型推断:结合 Flow/TypeScript,在字节码生成时进行类型特化优化
二、EAS Update 与字节码 Diffing
从 Expo SDK 55 开始,Hermes 支持 字节码差分更新(Bytecode Diffing)。未来这一能力将内置到 React Native 的核心 OTA 方案中(类似 CodePush)。
原理:服务器仅发送两个字节码版本的差异部分(bsdiff),手机端在本地应用补丁,更新体积可减少 75% 以上。
三、性能分析工具的进化
- React Native DevTools 集成更多 Hermes 域:包括 CPU 采样、内存快照、网络请求追踪、性能火焰图等全部集中在一个界面。
- 远程性能分析:可以在后台采集用户手机的 Hermes profile,上传到云端分析瓶颈。
- AI 辅助优化:Facebook 内部正在试验用 ML 模型预测代码中的性能热点,并自动建议重构。
四、Hermes on the Server?(Hermes 服务端)
2025 年底,Meta 开源了 Hermes 的独立嵌入版本,允许非 RN 的 Node.js 应用使用 Hermes 作为 JS 引擎,主打"超低启动延迟"适用于 FaaS(函数即服务)场景。
五、社区驱动的新特性
- WebAssembly 集成:允许在 Hermes 中同步调用 Wasm 模块(目前处于实验状态)
- SIMD 支持:利用 CPU 的 SIMD 指令加速数值运算(如图像处理)
- 更大堆限制:突破传统的 2GB 堆限制,适合数据密集应用
六、升级路线建议
| 时间节点 | 关键版本 | 建议动作 |
|---|---|---|
| 2026 Q2 | Hermes V1.2 | 升级 RN 0.84+,享受并发 GC 稳定版 |
| 2026 Q4 | RN 0.90 + Hermes V2 预览 | 在测试项目中试用字节码 diffing |
| 2027 Q1 | Hermes V2 稳定版 | 生产环境逐步迁移,关注性能回退 |
七、总结
Hermes 的未来充满可能性:更快、更轻、更深度的整合。作为 React Native 生态的核心基础设施,Hermes 的每一次迭代都会直接提升数百万应用的性能。
持续关注 Hermes GitHub 和 React Native 官方博客,紧跟路线图,提前规划应用的技术升级。
下一讲预告:专栏结语------Hermes Agent 的 30 天从入门到精通回顾
索引标签: Hermes, 路线图, React Native 新架构, 未来发展, 字节码Diffing, 性能增强
