JIT和AOT编译详解
JIT和AOT编译介绍
JIT - Just-In-Time 实时编译,即时编译
通常所说的JIT的优势是Profile-Based Optimization,也就是边跑边优化,根据运行时信息然后随着时间的推移得到尽可能最优的代码,适用于开发调试。
AOT - Ahead-Of-Time 预先编译,静态编译
AOT与JIT对比有以下优点:
在客户端我们不需要导入体积庞大的angular编译器,这样可以减少我们 JS 脚本库的大小。使用 AOT 编译后的应用,不再包含任何 HTML 片段,取而代之的是编译生成的 TypeScript 代码,这样的话 TypeScript 编译器就能提前发现错误。总而言之,采用 AOT 编译模式,我们的模板是类型安全的。适用于部署发布。
特性 JIT AOT
编译平台 (Browser) 浏览器 (Server) 服务器
编译时机 Runtime (运行时) Build (构建阶段)
包大小 较大 较小
执行性能 慢 更好
启动时间 长 更短
Angular JIT和AOT编译
基于JIT(Just in Time)编译器的动态引导
在main.ts使用JIT模式
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
基于AOT(Ahead of Time)编译器的静态引导
在main.ts使用AOT模式
import { platformBrowser } from '@angular/platform-browser';
import { AppModuleNgFactory } from './app.module.ngfactory';
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
JIT和AOT编译器都会生产AppModuleNgFactory,只是方式不一样。JIT在浏览器,缓存里实时生产AppModuleNgFactory 。AOT编译器会生产一个物理文件app.module.ngfactory。AOT模式引入这个文件,然后启动:
import { AppModuleNgFactory } from './app.module.ngfactory';
生成app.module.ngfactory
@angular/compiler-cli提供了tsc和AOT两种编译器,把TypeScript转换为Javascript:
安装ngc
npm install @angular/compiler-cli typescript@next @angular/platform-server @angular/compiler
JIT和AOT编译详解相关推荐
- java jit aot_JIT和AOT编译详解
JIT和AOT编译介绍 JIT - Just-In-Time 实时编译,即时编译 通常所说的JIT的优势是Profile-Based Optimization,也就是边跑边优化 ...
- linux 内核模块(驱动) 编译详解
一.准备工作 准备工作如何做,这里就不详说了. a) 首先,你要有一台PC,装好了Linux. b) 安装好GCC(这个指的是host gcc,用于编译生成运行于pc机程序的).make.ncurse ...
- Android 源码编译详解【合集篇】
Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...
- 全志 android 编译,全志Android SDK编译详解(二)
注意要确定安装了jdk) 第一步: cd lichee; ./build.sh -p sun5i_elite -k 3.0 (apt-get install uboot-mkimage需要安装m ...
- Android编译详解之lunch命令 【转】
本文转载自: Android编译详解之lunch命令 (2012-10-08 10:27:55) 转载 ▼ 标签: it 分类: android内核剖析 Android的优势就在于其开源,手机和平板生 ...
- linux 2.4内核编译,linux 2.4内核编译详解
2.4内核编译详解 内核简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性. Linux的一个重要的特点就是其源代码的公开性,所有的内 ...
- vb6反编译详解_[原创]VB6反编译详解(一)
[原创]VB6反编译详解(一) 2006-7-9 16:59 23171 [原创]VB6反编译详解(一) 2006-7-9 16:59 23171 VB6反编译详解 by Kenmark-Fenix ...
- PowerBuilder命令行编译详解[1]
PowerBuilder命令行编译详解[1] www.educity.cn 发布者:bin0725 来源:网络转载 发布日期:2013年05月28日 公司的系统是使用PB9.0 + ...
- linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...
最新文章
- 防火墙DNAT与SNAT详谈
- 查看suse系统版本
- 微信小程序AES加密解密
- 【解答】一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备(?)组电池,(?)个充电器,可以让模型每次行驶完可以立即换电池行驶不用等待。
- linux上还原自主nuget包需要注意的问题
- Spring Cloud —— 消息队列与 RocketMQ
- go语言结构体作为函数参数,采用的是值传递
- 前端开发css禁止选中文本
- rest get map参数_Spring 5.2.2 集成技术—REST
- WebLogic命令行远程部署
- 微软未来将在其开发语言整合F#语言(2007-10)
- jflash添加芯片_【原创】巧用J-Link+J-Flash给Kinesis烧写序列号
- 学习记录:小程序图片上传至服务器
- 2020徐涛背诵笔记电子版pdf_2021徐涛冲刺背诵笔记电子版-2021徐涛冲刺背诵笔记pdf免费版下载_东坡手机下载...
- 计算机考研英语一历年国家线,历年考研英语国家线
- 【定位原理揭秘第三期】室内定位技术原理揭秘
- Python学习案例2——数独解题及出题程序
- Python中的逻辑运算符号
- 时间序列数据分析—概述
- AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(阅读笔记)
热门文章
- Android_RecyclerView实现上下滚动广告条(带图片)
- 你不努力,有什么资格抱怨(转)(文/蒋文伟)
- HTML-Css文字排版--字体--段落
- 家长控制与火绒的结合——限制电脑与手机娱乐
- Java中抽象类 abstract和interface的区别
- 【软件测试】测试面试,面试官其实想要的答案......
- cursor is oracle 日期_Oracle 12CR2查询转换之cursor-duration临时表
- HyperLeger Fabric学习(一)
- Ubuntu深度学习环境配置一箩筐
- JSP和HTML的区别