Dart的JIT 与 AOT

JIT:Just In Time
AOT:Ahead of Time
含义:
目前,程序主要有两种运行方式:静态编译与动态解释。
静态编译的程序在执行前所有被翻译为机器码,一般将这种类型称为AOT (Ahead of time compiler)即 “提早编译”;如C、C++。性能

判断标准是:程序执行前是否须要编译。测试


而解释执行的则是一句一句边翻译边运行,一般将这种类型称为JIT(Just-in-time)即“即时编译”。如JavaScript、Python。翻译

程序运行的方式和具体的语言没有强制关系,好比Python,既能够JIT,也能够AOT。ip

Dart中的JIT和AOT:开发

  1. Dart在开发过程当中使用JIT,所以每次改都不须要再编译成字节码。节省了大量时间。
  2. 在部署中使用AOT生成高效的ARM代码以保证高效的性能。

Dart 是少数同时支持 JIT(Just In Time,即时编译)和 AOT(Ahead of Time,运行前编译)的语言之一。部署

JIT 在运行时即时编译,在开发周期中使用,能够动态下发和执行代码,开发测试效率高,但运行速度和执行性能则会由于运行时即时编译受到影响。产品

总结来说,在开发期使用 JIT 编译,能够缩短产品的开发周期。Flutter 最受欢迎的功能之一热重载,正是基于此特 性。编译

而在发布期使用 AOT,就不须要像 React Native 那样在跨平台 JavaScript 代码和原生 Android、iOS 代码之间创建低效的方法调用映射关系。效率

因此说,Dart 具备运行速 度快、执行性能好的特色。程序

相关文章
相关标签/搜索