Facebook建立了一个名为HermesJavaScript引擎,该引擎可提高Android设备上React Native应用程序的性能。 如今,开源引擎已针对React Native进行了优化,但它通常可用于提高基于JavaScript的移动应用程序的性能。
具体来说,爱马仕(Hermes)利用紧凑的字节码和提前进行的静态优化来实现快速启动。 在许多情况下,启用Hermes可以缩短启动时间,减少内存使用量并缩小应用程序尺寸。
爱马仕目前是React Native中的可选功能。 Android上大多数Facebook的React Native产品已经在使用Hermes,包括Crisis Response和Oculus配套应用程序。
Hermes JavaScript引擎功能
爱马仕的功能包括:
- 无需在用户等待时在设备上解析和编译JavaScript,而是可以在构建时完成该工作。
- 提前编译允许进行更复杂的优化。 可以在程序中找到相同的功能并进行重复数据删除。 来自JavaScript代码的字符串可以打包在一起,形成高效的存储形式,而没有运行时的开销。
- 较小的Android APK大小。
- 可以根据需要对字节码进行内存映射并从闪存中进行增量加载。
- 虚拟地址空间可根据需要按需分配,从而避免了估计堆大小并使开销最小化的麻烦。 释放的内存可以返回到OS。 而且,垃圾收集的暂停时间也被最小化。
- 实现爱马仕针对ECMAScript 2015的 JavaScript标准,也称为ES6。 React Native应用程序中不常用JavaScript功能已被省略。
Facebook还开源了Hermes与React Native的集成,因此开发人员可以立即选择使用Hermes。 该公司计划为Hermes构建时间和内存性能分析工具,并增加对Visual Studio Code调试协议的支持。
在哪里下载Hermes
您可以从GitHub 下载Hermes 。 可以在React Native网站上找到启用Hermes的说明。