JIT和AOT

作者: Lost_Robot | 来源:发表于2019-11-07 14:55 被阅读0次

程序主要有两种运行方式:静态编译动态解释

1. 静态编译

的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time)即 “提前编译”.
代表:c/c++开发的应用

2.动态解释

解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”.
代表:JavaScript、python等,所有脚本语言都支持JIT模式

注意:

的是JIT和AOT指的是程序运行方式,和编程语言并非强关联的,有些语言既可以以JIT方式运行也可以以AOT方式运行,如Java、Python,它们可以在第一次执行时编译成中间字节码、然后在之后执行时可以直接执行字节码,也许有人会说,中间字节码并非机器码,在程序执行时仍然需要动态将字节码转为机器码,是的,这没有错,不过通常我们区分是否为AOT的标准就是看代码在执行之前是否需要编译,只要需要编译,无论其编译产物是字节码还是机器码,都属于AOT。

3.Flutter为什么选择Dart语言?

a.开发效率高:
基于JIT的快速开发周期:Flutter在开发阶段采用,采用JIT模式,这样就避免了每次改动都要进行编译,极大的节省了开发时间;

基于AOT的发布包: Flutter在发布时可以通过AOT生成高效的ARM代码以保证应用性能。而JavaScript则不具有这个能力。

b.高性能
Dart支持AOT,提供流畅、高保真的的UI体验.

c.快速内存分配
Flutter框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器.

d.类型安全
Dart是类型安全的语言,支持静态类型检测,所以可以在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来说可能会更具有吸引力。

相关文章

  • Dart 基础

    JIT 与 AOT Dart 是少数同时支持 JIT(Just In Time,即时编译)和 AOT(Ahead ...

  • Android Art里的Jit&AOT

    简单介绍一下Art里的jit和aot.本文分成三个部分: JIT Introduction AOT Introdu...

  • Flutter中的热更新

    首先来了解一下 JIT & AOT JIT & AOT JIT全称是Just In Time,代码可以在程序执行时...

  • JIT和AOT

    前端编译、JIT、AOT简单解释JIT详细解释编译技术探讨 JVM中涉及JIT编译的参数大方法执行效率低的原因--...

  • JIT和AOT

    字面意思:JIT:Just In TimeAOT:Ahead of Time含义:目前,程序主要有两种运行方式:静...

  • JIT和AOT

    程序主要有两种运行方式:静态编译与动态解释。 1. 静态编译 的程序在执行前全部被翻译为机器码,通常将这种类型称为...

  • JIT 和 AOT

    程序主要有两种运行方式:静态编译 与 动态解释 AOT (静态编译) 静态编译的程序在执行前程序会被提前编译为机器...

  • Flutter之Dart语言特点

    一、JIT与AOT Dart是少数同时支持JIT(即时编译)和AOT(运行期编译)的语言之一,这使Dart具有运行...

  • Dart语言概览

    Dart特性 Dart同时支持JIT(Just In Time,即时编译)和AOT(Ahead of Time,运...

  • Dart的特性(JIT 与 AOT、内存分配与垃圾回收、单线程模

    一、JIT 与 AOT 借助于先进的工具链和编译器,Dart 是少数同时支持 JIT(Just In Time,即...

网友评论

    本文标题:JIT和AOT

    本文链接:https://www.haomeiwen.com/subject/jthvbctx.html