Dart的JIT 与 AOT
2024-08-29 01:58:26
JIT:Just In Time
AOT:Ahead of Time
含义:
目前,程序主要有两种运行方式:静态编译与动态解释。
静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time compiler)即 “提前编译”;如C、C++。
判断标准是:程序执行前是否需要编译。
而解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。如JavaScript、Python。
程序运行的方式和具体的语言没有强制关系,比如Python,既可以JIT,也可以AOT。
Dart中的JIT和AOT:
- Dart在开发过程中使用JIT,因此每次改都不需要再编译成字节码。节省了大量时间。
- 在部署中使用AOT生成高效的ARM代码以保证高效的性能。
Dart 是少数同时支持 JIT(Just In Time,即时编译)和 AOT(Ahead of Time,运行前编译)的语言之一。
JIT 在运行时即时编译,在开发周期中使用,可以动态下发和执行代码,开发测试效率高,但运行速度和执行性能则会因为运行时即时编译受到影响。
总结来讲,在开发期使用 JIT 编译,可以缩短产品的开发周期。Flutter 最受欢迎的功能之一热重载,正是基于此特 性。
而在发布期使用 AOT,就不需要像 React Native 那样在跨平台 JavaScript 代码和原生 Android、iOS 代码之间建立低效的方法调用映射关系。
所以说,Dart 具有运行速 度快、执行性能好的特点。
最新文章
- SQL Server中使用PIVOT行转列
- Linux下FTP安装与配置
- Hadoop的Map侧join
- 关于Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的问题
- 毕向东JAVA视频讲解笔记(前三课)
- 怎么对HTML 5的特性做检测?
- springMVC从上传的Excel文件中读取数据
- Spire.XLS
- 日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别
- Linux下搭建Nginx+MySQL+PHP
- mysql中的一些操作语句,留存
- 【netlimiter】的使用
- 人体姿态的相似性评价基于OpenCV实现最近邻分类KNN K-Nearest Neighbors
- Spring系列之AOP的原理及手动实现
- 在Arcmap中加载互联网地图资源的4种方法
- Python 'xxx' codec can't decode byte xxx常见编码错
- 浅谈HTTP中GET、POST用法以及它们的区别
- January 14th, 2018 Week 02nd Sunday
- iOS 阅读唐巧博客心得
- java理论学时第七节。课后作业。
热门文章
- python中的变量引用小结
- www、数组的equals、接口和抽象类、装箱拆箱、final赋值
- 深度优先搜索(DFS)和广度优先搜索(BFS)求解迷宫问题
- C/C++预处理指令#include,#define,#undef,#if,#ifdef,#ifndef,#elif,#endif,#error......
- 转:lightGBM的黑科技--plot函数
- python-django-fastdfs+Nginx的安装和配置_20191122
- 关于RFC
- javaweb_forQuery
- Redis Client 官方下载地址
- SHELL用法四(for语句)