Flutter 的两种编译模式

使用 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 的优势也是显而易见的,事先编译好的二进制代码,加载和执行的速度都会非常快。&

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值