即时编译(JIT)和运行前编译(AOT)

  • CPU 只能执行二进制码,所有我们写的代码都需要转换成二进制码才能被 CPU 执行,高级语言转换成二进制码分为两种,一种是在运行前编译好,另一种是在运行中逐条翻译成二进制码,前者称为运行前编译即 AOT,后者称为即时编译即 JIT.

即时编译

  • 即时编译:全称Just In Time,简称 JIT,
  • 开发效率高:在开发周期中使用,可以动态下发和执行代码,开发测试效率高,在开发期使用 JIT 编译,可以缩短产品的开发周期。
  • 速度慢:运行速度和执行性能则会因为运行时即时编译受到影响。

运行前编译

  • 运行前编译: 全称Ahead of Time,简称AOT.
  • 速度快:因为在编译的时候它们能够获取到更多的有关程序结构的信息,从而有机会对它们进行优化。
  • 适用性差:它们编译得到的二进制代码往往是CPU相关的,在需要适配多种CPU时,可能需要编译多次。开发效率低,每次调试都需要编译.

你可能感兴趣的:(即时编译(JIT)和运行前编译(AOT))