0
点赞
收藏
分享

微信扫一扫

JVM 虚拟机 AOT 和 JIT 即时编译


文章目录

  • ​​JVM 虚拟机 AOT 和 JIT 即时编译​​
  • ​​1、AOT​​
  • ​​2、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)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。
为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器

举报

相关推荐

0 条评论