1: 田杉山脈 ★ 2019/07/25(木) 23:03:45.63 ID:CAP_USER.net
Facebookは、モバイルアプリケーションの実行に最適化した軽量なJavaScriptエンジン「Hermes」をオープンソースで公開したことを明らかにしました。
Webアプリとして構築されているモバイルアプリケーションは、現在では非常に複雑で大規模なものになりつつあります。
これは同時に、アプリケーションのロードや起動にかかる時間が増大することに直結しており、特に発展途上国などで広く使われている低スペックなスマートフォンにおいてはその影響が顕著です。
Facebookがこうした大規模するモバイル向けWebアプリケーションの課題を取り除くべく調査したところ、JavaScriptエンジンを改善する必要があることを認識し、Hermesを開発することにしたと説明しています。
低スペックのスマートフォンでも高速に起動、実行
Hermesでは、JavaScriptを事前コンパイルによりバイトコードを生成することで、より最適化されたバイトコードを生成できるとともに、実行時にJavaScriptをパースしてバイトコードを生成するというステップが省略できることによる起動時間の短縮を実現しています。
またHermesのバイトコードは全体をメモリに読み込まなくとも実行を開始できる構造になっているため、読み込み速度の遅いフラッシュメモリからの読み込み終了を待つことなくアプリケーションの起動が可能で、これもアプリケーションの起動時間の短縮に貢献します。
Hermesでは、あえてJIT(Just-in-Compiler)を搭載していません。これはベンチマークテストなどで実行速度を比較した場合には不利な結果がでますが、こうしたベンチマークは実際のモバイルアプリケーションの実行環境を反映していないとFacebookは次のように指摘しています。
Hermesでは低スペックなスマートフォンでもすぐに起動し、使い始められるような速度を重視しており、そのためにHermesではインタープリタにおける実行速度の性能向上に注力しているとのこと。
そのほかにもガベージコレクションや仮想メモリ空間の利用などにおいても配慮がされており、デベロッパー向けにはDevTools prtocolに対応し、Chromeのリモートデバッギングを利用可能だと説明されています。
EcmaScript 6準拠を目標に
HermesはEcmaScript 6(ES2015)仕様に準拠することを目指しています。
ただし現時点ではブラウザへの搭載やNode.jsのようなサーバサイドへの組み込みの計画はなく、まずはReact Nativeのオプションとして利用可能にしているとのことで、今後さらにその範囲を拡大していきたいとしています。
https://www.publickey1.jp/blog/19/javascripthermesfacebook.html
Webアプリとして構築されているモバイルアプリケーションは、現在では非常に複雑で大規模なものになりつつあります。
これは同時に、アプリケーションのロードや起動にかかる時間が増大することに直結しており、特に発展途上国などで広く使われている低スペックなスマートフォンにおいてはその影響が顕著です。
Facebookがこうした大規模するモバイル向けWebアプリケーションの課題を取り除くべく調査したところ、JavaScriptエンジンを改善する必要があることを認識し、Hermesを開発することにしたと説明しています。
低スペックのスマートフォンでも高速に起動、実行
Hermesでは、JavaScriptを事前コンパイルによりバイトコードを生成することで、より最適化されたバイトコードを生成できるとともに、実行時にJavaScriptをパースしてバイトコードを生成するというステップが省略できることによる起動時間の短縮を実現しています。
またHermesのバイトコードは全体をメモリに読み込まなくとも実行を開始できる構造になっているため、読み込み速度の遅いフラッシュメモリからの読み込み終了を待つことなくアプリケーションの起動が可能で、これもアプリケーションの起動時間の短縮に貢献します。
Hermesでは、あえてJIT(Just-in-Compiler)を搭載していません。これはベンチマークテストなどで実行速度を比較した場合には不利な結果がでますが、こうしたベンチマークは実際のモバイルアプリケーションの実行環境を反映していないとFacebookは次のように指摘しています。
Hermesでは低スペックなスマートフォンでもすぐに起動し、使い始められるような速度を重視しており、そのためにHermesではインタープリタにおける実行速度の性能向上に注力しているとのこと。
そのほかにもガベージコレクションや仮想メモリ空間の利用などにおいても配慮がされており、デベロッパー向けにはDevTools prtocolに対応し、Chromeのリモートデバッギングを利用可能だと説明されています。
EcmaScript 6準拠を目標に
HermesはEcmaScript 6(ES2015)仕様に準拠することを目指しています。
ただし現時点ではブラウザへの搭載やNode.jsのようなサーバサイドへの組み込みの計画はなく、まずはReact Nativeのオプションとして利用可能にしているとのことで、今後さらにその範囲を拡大していきたいとしています。
https://www.publickey1.jp/blog/19/javascripthermesfacebook.html
【モバイルアプリに最適化した軽量JavaScriptエンジン「Hermes」、Facebookがオープンソースで公開】の続きを読む