当前位置:   article > 正文

Flutter 的两种编译模式_flutter aot和jit

flutter aot和jit

使用 Flutter 构建过 App 的人一定有一个困惑,就是 Flutter 编译出的产物到底是什么玩意。有时候分为几个文件,有时候是一个动态库,真的叫人摸不着头脑。

本文详细解释一下 Flutter 的编译模式。


编译模式的分类

编程语言要达到可运行的目的需要经过编译,一般地来说,编译模式分为两类:JIT 和 AOT。

JIT

JIT 全称 Just In Time (即时编译),典型的例子就是 v8,它可以即时编译并运行 JavaScript。所以你只需要输入源代码字符串,v8 就可以帮你编译并运行代码。通常来说,支持 JIT 的语言一般能够支持自省函数(eval),在运行时动态地执行代码。

JIT 模式的优势是显而易见的,可以动态下发和执行代码,而不用管用户的机器是什么架构,为应用的用户提供丰富而动态地内容。

但 JIT 的劣势也是显而易见的,大量字符串的代码很容易让 JIT 编译器花费很多时间和内存进行编译,给用户带来的直接感受就是应用启动慢。

AOT

AOT 全称 Ahead Of Time(事前编译),典型的例子就是 C/C++,LLVM 或 GCC 通过编译并生成 C/C++ 的二进制代码,然后这些二进制通过用户安装并取得执行权限后才可以通过进程加载执行。

AOT 的优势也是显而易见的,事先编译好的二进制代码,加载和执行的速度都会非常快。&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/97762
推荐阅读
相关标签
  

闽ICP备14008679号