JVM 虚拟机 AOT 和 JIT 即时编译

Posted 简简单单OnlineZuozuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM 虚拟机 AOT 和 JIT 即时编译相关的知识,希望对你有一定的参考价值。

文章目录

JVM 虚拟机 AOT 和 JIT 即时编译


1、AOT

AOT 是 Ahead Of Time ,运行前编译

与 JIT 编译对比
JIT 吞吐量高,有运行时性能加成,可以跑得更快,并可以做到动态生成代码等,但是相对启动速度较慢,并需要一定时间和调用频率才能触发 JIT 的分层机制
AOT 内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化

但是 JIT 编译需要占用运行时资源

2、JIT

JIT 是 Just-In-Time ,即时编译

JIT 动态编译,某段代码即将第一次被执行时进行编译

在部分商用虚拟机中(如HotSpot),Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。
为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器

以上是关于JVM 虚拟机 AOT 和 JIT 即时编译的主要内容,如果未能解决你的问题,请参考以下文章

语言特性

JVM - JIT即时编译器

JVM中的JIT

Java虚拟机即时编译器技术JIT

JVM -- 运行期优化;JIT

JVM -- 运行期优化;JIT