米Facebook、モバイルアプリ向けのJavaScriptエンジン「Hermes」をオープンソースで公開

 米Facebookが、モバイルアプリ向けに最適化したJavaScriptエンジン「Hermes」をオープンソースで公開した。まずは自社のモバイルアプリフレームワーク「React Native」をサポートする。

 Hermesは軽量のJavaScriptエンジンで、Android上のReact Native向けに最適化されている。事前の静的最適化とコンパクトなバイトコードを特徴とし、メモリやストレージに制限がある非ハイエンドモバイル端末上でReact Mobileアプリの操作開始時間(Time to Interact)やダウンロードサイズ(APK容量)、メモリ使用が改善すると報告している。

 JavaScriptフレームワークを用いた大規模なモバイルは、性能面での問題が発生することがある。Facebook自身もモバイルアプリでこの問題を抱えており、調査の結果JavaScriptエンジンがアプリ起動の速度やダウンロード容量に影響していることがわかった。この問題を解決するためにHermesを開発したという。

 アーキテクチャではバイトコードの事前コンパイル、JITコンパイラなしなどの特徴を持ち、ガベージコレクタではオンデマンドの割り当てなどにより仮想アドレス(VA)空間とメモリを最小化した。デバッグなど開発者体験に関連する機能も特徴としている。

 iOS上のJavaScriptCoreを継続してサポートするため、C++アプリケーションでのJavaScriptの組み込みのための軽量APIとなるJSIも構築した。これを利用して、ReactNative開発者は自分たちのインフラの強化を実装できるという。

 Hermesはバージョン0.1をプロジェクトのWebサイトより入手できる。ライセンスはMIT License。

Hermes
https://github.com/facebook/hermes