跳到主要内容
Version: 0.85

使用 Hermes

Hermes 是一个专门针对 React Native 应用而优化的开源 JavaScript 引擎。对于很多应用来说,使用 Hermes 引擎可以缩短启动时间,减少内存占用以及包体积(相比 JavaScriptCore)。 Hermes 已被 React Native 默认使用,无需额外配置即可启用。

Bundled Hermes​

React Native 自带一个捆绑版本的 Hermes。 每当我们发布新版本的 React Native 时,都会为你构建对应版本的 Hermes。这确保你使用的 Hermes 版本与你使用的 React Native 版本完全兼容。

这个变更对 React Native 用户来说是完全透明的。你仍然可以使用本页描述的方式禁用 Hermes。 你可以在此页面上阅读更多有关技术实现的信息。

确认 Hermes 是否启用​

如果你最近从头创建了一个新应用,可以在欢迎视图中查看 Hermes 是否已启用:

在新项目中查看 JS 引擎状态的位置

JavaScript 中可以使用一个名为 HermesInternal 的全局变量来验证是否正在使用 Hermes:

React JSX
const isHermes = () => !!global.HermesInternal;
caution

如果你使用了非标准的 JS bundle 加载方式,则可能会出现虽然 HermesInternal 变量存在,但并没有使用高度优化的预编译字节码的情况。请确认你正在使用 .hbc 文件,并按照以下说明进行性能对比测试。

要了解 Hermes 的优势,请尝试构建应用的发布版本进行对比。例如,在项目根目录下执行:

npm run android -- --mode="release"

这将在构建时将 JavaScript 编译为 Hermes 字节码,从而提高应用在设备上的启动速度。

切换回 JavaScriptCore​

React Native 也支持使用 JavaScriptCore 作为 JavaScript 引擎。请按照社区仓库的说明来退出使用 Hermes。