JIT编译
提示
请解释下方法内联、逃逸分析等动态编译优化方法
上一节中,我们概述了Java编译执行的整个过程,其中包括:前端编译、类加载、解释执行、JIT编译、AOT编译。本节我们详细讲解其中的JIT编译。尽管JIT编译相关的知识比较偏底层,但对于程序员来说也并非完全没有感知,比如在做性能测试时,我们经常会发现,循环多次执行被测代码时,被测代码的执行速度会变快。这是因为前几次代码的执行为解释执行,但循环执行多次之后,虚拟机便发现代码为热点代码,就会启动JIT编译,在进行编译的同时进行编译优化,将字节码编译为高效的机器码。之后执行代码便直接执行高效的机器码,而非解释执行字节码,因此,代码的执行速度就变快了。实际上,JIT编译过程会涉及非常多的细节内容,这其中就包括JIT编译器、分层编译、热点探测、编译优化,接下来我们就详细讲解一下JIT编译的这4部分内容。
