AOT、JIT概念模糊理清一下

  1. 动态编译(dynamic compilation) 指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。

  2. JIT编译(just-in-time compilation) 狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即时编译”。JIT编译是动态编译的一种特例。

  3. JIT编译一词后来被泛化,时常与动态编译等价;但要注意宽泛与狭义的JIT编译所指的区别。

  4. 自适应动态编译(adaptive dynamic compilation) 也是一种动态编译,但它通常执行的时机比JIT编译迟,先让程序“以某种形式”先运行起来,收集一些信息之后再做动态编译。这样的编译可以更加优化,可以很自然的融入PGO优化。这个“某种形式”可以称为“baseline execution“,可以由解释器或简单的JIT编译器承担。

来源于知乎RednaxelaFX大大的回答

你可能感兴趣的:(JavaScript,Java,NodeJS)