目录
1)AOT(ahead of time)提前编译(运行前编译)
2)JIT (just in time) 动态编译 (实时编译)
求关注求点赞求收藏求转发,你的支持就是我更新的动力
1.什么是提前编译AOT
与AOT区别的一种编译也就是一般使用的编译JIT也就是实时编译
1)AOT(ahead of time)提前编译(运行前编译)
可以把源代码直接转换成机器代码,启动快内存占低(在运行前就转换成机器码,打包体积小),运行时不优化,程序安装时间长
2)JIT (just in time) 动态编译 (实时编译)
在程序运行时,动态生成代码运行时可以优化,启动比较慢,编译时候需要占用运行时的资源,程序运行时,把字节码转换硬盘上直接运行机器码,部署到环境
要实现提前编译就要将原本的虚拟机换成GraalVM虚拟机
2.安装GraalVM并配置环境变量
https://www.graalvm.org/downloads/
在官网下在graalvm的jdk解压后进行配置
添加GRAALVM_HOME变量,以及其jdk的路径,然后将JAVA_HOME的值也改为graalvm的jdk路径,
修改path中的路径,覆盖掉原本的%JAVA_HOME%\bin为graalvm文件目录并将其放在第一条
这里要注意如果和我上述步骤一模一样还是不行,且只改了用户的,请将系统的也改了,这样就可以用到全局。
输入java -version检查是否安装成功
然后输入gu install native-image下载native-image插件
3.安装c++编译环境也就是Visual studio
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
勾选相关内容进行下载
4.后面配置Visual Studio环境变量
配置INCLUDE,LIB,Path
这里需要说明这些路径的前面可能都不一样与你安装的位置有关,但是后半部分都是一样的,是可以找到的。
5.打开工件进行操作实验
在搜索框中找到这个
刚开始进去是这样可以使用cd指令跳到指定盘目录
例如这里我在d盘创建了一个helloworld程序
public class Hello {
public static void main(String[] args) {
System.out.println("hello world");
}
}
跳到helloworld代码文件存放的目录输入上图中指令,直到出现finish,则创建完成
创建完成后就会出现一个exe文件,这是完成提前编译。