跳到主要内容

使用 Hermes

Hermes 是一个为 React Native 优化的开源 JavaScript 引擎。对于许多应用来说,与 JavaScriptCore 相比,使用 Hermes 将带来启动时间更快、内存使用更少、应用体积更小的优势。Hermes 默认由 React Native 使用,无需额外配置即可启用。

捆绑的 Hermes

React Native 附带了 捆绑版本 的 Hermes。每当我们发布新版本的 React Native 时,都会为您构建一个 Hermes 版本。这将确保您使用的是与您当前使用的 React Native 版本完全兼容的 Hermes 版本。

此更改对 React Native 用户完全透明。您仍然可以使用本页描述的命令禁用 Hermes。您可以在本页阅读有关技术实现的更多信息

确认正在使用 Hermes

如果您最近从头开始创建了一个新应用,您应该在欢迎视图中看到 Hermes 是否已启用。

Where to find JS engine status in the new project?

JavaScript 中将提供一个名为 HermesInternal 的全局变量,可用于验证是否正在使用 Hermes。

jsx
const isHermes = () => !!global.HermesInternal;
注意

如果您使用非标准方式加载 JS 包,则 HermesInternal 变量可能可用,但您并未在使用高度优化的预编译字节码。请确认您正在使用 .hbc 文件,并按照下文详述的方式对使用前后进行基准测试。

要查看 Hermes 的优势,请尝试对您的应用进行发布版本构建/部署以进行比较。例如,从项目根目录执行:

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

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

切换回 JavaScriptCore

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