Facebook开源Hermes:轻量JavaScript优化引擎

19-07-13 banq
              

一个用于移动的JavaScript VM,它将JavaScript编译成字节码,可以立即进行编程和执行。Hermes是一款JavaScript引擎,经过优化、可以快速启动Android 上的React Native应用程序。它具有提前的静态优化和紧凑的字节码。特点:

  1. Herms是基于LLVM库包(用于StringRef,ArrayRef,dyn_cast等)。它还使用了FileCheck和一些其他实用程序。
  2. Hermes具有基于SSA的支持Javascript的高级IR(每个函数都是一个闭包等)。
  3. Hermes在编译时对字节码执行寄存器分配,RA(具有分段间隔的线性扫描)中的一个复杂因素是JS堆栈的支持和奇怪的调用语义(args必须是连续的)
  4. Herms执行类型推断优化。每个SSA值由可能值的格子(字符串,int对象等)表示。
  5. Hermes Mem2Reg传递与Swift M2R传递几乎相同

HermesGithub