1、AOT概述
1.1、JIT与AOT的区别
JIT和AOT 这个名词是指两种不同的编译方式,这两种编译方式的主要区别在于是否在“运行时”进行编译
(1)JIT, Just–in–time,动态(即时)编译,边运行边编译;
在程序运行时,根据算法计算出热点代码,然后进行 JIT 实时编译,这种方式吞吐量高,有运行时性能加成,可以跑得更快,并可以做到动态生成代码等,但是相对启动速度较慢,并需要一定时间和调用频率才能触发 JIT 的分层机制。JIT 缺点就是编译需要占用运行时资源,会导致进程卡顿。
(2)AOT,Ahead Of Time,指运行前编译,预先编译。
AOT 编译能直接将源代码转化为机器码,内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化,AOT 缺点就是在程序运行前编译会使程序安装的时间增加。
1.2、Graalvm
1.3、Native Image
2、演示Native Image构建过程
2.1、GraalVM安装
(1)下载GraalVM
(2)配置环境变量
(3)安装native–image插件
2.2、安装C++的编译环境
(1)下载Visual Studio安装软件
(2)安装Visual Studio
(3)添加Visual Studio环境变量
(4)打开工具,在工具中操作
2.3、编写代码,构建Native Image
(1)编写Java代码
(2)复制文件到目录,执行编译
(3)Native Image 进行构建
(4)查看构建的文件
(5)执行构建的文件
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。