news 2026/11/4 6:49:28

Hermes 如何让 React Native 启动更快:JavaScript 引擎新手完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hermes 如何让 React Native 启动更快:JavaScript 引擎新手完全指南

Hermes 如何让 React Native 启动更快:JavaScript 引擎新手完全指南

【免费下载链接】hermesA JavaScript engine optimized for running React Native.项目地址: https://gitcode.com/gh_mirrors/hermes/hermes

React Native 应用打开要等三秒,元凶往往不在网络,而在 JavaScript 的执行方式。Hermes 是 Facebook 为 React Native 定制的 JavaScript 引擎:它在打包期把代码编译为紧凑字节码(提前编译,AOT),运行时直接解释这些字节码,不保存原始源码。启动快、内存省,根子都在这条设计上。

为什么不用 V8:一笔 AOT 与内存的账

V8、JSC 是 JIT 引擎:运行时保存源码,再把热点函数动态编译成机器码,需要预留大片虚拟地址空间做代码生成。Hermes 反着来——源码在打包时编译成字节码,包体积更小,运行时不执行代码生成,启动更快。这就是移动端要它的根本原因。

新版(Hermes v2 方向)允许两种路径共存:字节码解释器与基线 JIT 可以在同一运行时混用,热点函数会被 JIT 成原生代码。各模式的取舍见 doc/blog/2025-11-02-hermes-compilation-runtime-modes.md。

🛠 最小可用路径:三步构建 hermes CLI

先装依赖(cmake、ninja、git、python3,Ubuntu 上再加 libreadline-dev),然后两条 cmake:

git clone https://gitcode.com/gh_mirrors/hermes/hermes cmake -S hermes -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug && cmake --build ./build

产物是build/bin/hermes:直接跑.js文件,或当 REPL 用;想验证 AOT 流程就编译成字节码再执行:

hermes -emit-binary -out test.hbc test.js && hermes test.hbc

依赖清单、Release 构建和 Windows 流程都写在 doc/BuildingAndRunning.md。同一构建还会产出 hdb(命令行调试器)、hbcdump(字节码反汇编器)等工具,不用额外装。

踩坑清单:这些 ES 特性不支持或不标准

写代码前先看 doc/Features.md,最容易踩的几个:

  • eval只在全局作用域生效,摸不到局部变量——这是 AOT 编译的硬性要求;
  • with语句直接抛 SyntaxError;
  • import/export没有运行时模块加载器,模块必须交给打包器(如 Metro)处理;
  • Function.prototype.toString()返回[bytecode]而不是源码;
  • 非严格模式下arguments的行为被简化(如赋值不同步参数)。

规律很简单:罕见、依赖动态内省、会破坏"编译一次直接跑"模型的特性,都被裁掉了。

🧠 内存去哪了:用堆快照定位泄漏

"越用越卡"的反馈,八成是对象没释放。Hermes 能生成兼容 Chrome DevTools 的堆快照:每个对象类别都给出 Distance、Shallow Size、Retained Size(该对象连同它引用的一切所占的总大小),直接指认谁在占内存。实现就在 lib/VM/HeapSnapshot.cpp。

⚡ 快多少:一组基准数据

官方基准以 QuickJS(以规范合规著称的小引擎)为 1.0 参照,数值是相对倍速。2025 年 6 月的数据显示,Hermes v2(hv32 压缩指针 + JIT)在 16 个 Octane 子项上普遍达到 QuickJS 的 2~5 倍,也比上一代 Hermes 快约 1.6~2 倍。

32 位压缩指针(hv32)模式还顺带省内存、提升缓存命中,在 32 位设备上收益更明显,各平台内存模式差异见 doc/blog/2025-11-06-hermes-memory-modes.md。


如果你的项目跑在 React Native 上,直接用官方预构建的 Hermes 是最稳的路径;这个仓库源码的价值在于你能自己验证并深挖它的性能与内存行为——构建一次,上面这些工具就都在手边了。

【免费下载链接】hermesA JavaScript engine optimized for running React Native.项目地址: https://gitcode.com/gh_mirrors/hermes/hermes

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 6:48:38

【LH-Hypertron-SW01】

LH-Hypertron-SW01■ 简介■ 01.■ 02.■ 03.■ 参数■ 01. 加速度、角速度、四元数、欧拉角(pitch/roll/yaw)、里程计■ 简介 ■ 01. ■ 02. ■ 03. ■ 参数 ■ 01. 加速度、角速度、四元数、欧拉角(pitch/roll/yaw)、里程计…

作者头像 李华
网站建设 2026/11/4 6:46:57

具身智能创新架构解析(12):TVA-EIS的极限与风险应对策略研究

前沿技术探索:TVA智能体(简称TVA) TVA智能体(Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习(DRL)、卷积神经网络(CNN)与因式分解算法(FRA),构…

作者头像 李华
网站建设 2026/11/4 6:43:47

在线预约导游|基于Java+vue的在线预约导游系统(源码+数据库+文档)

在线预约导游系统 基于SprinBootvue的在线预约导游系统 一、前言 二、系统设计 三、系统功能设计 前台功能实现 后台功能实现 管理员模块实现 导游模块实现 用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…

作者头像 李华
网站建设 2026/11/4 6:37:57

Hermes Agent:3步打造你的AI金融分析专家,让投资决策更智能

Hermes Agent:3步打造你的AI金融分析专家,让投资决策更智能 在数字化投资时代,你是否曾梦想拥有一个全天候工作的金融分析师助手?Hermes Agent正是这样一个能与你共同成长的自学习AI代理框架。它不仅支持300多种AI模型&#xff0…

作者头像 李华