转自:
一、JIT(即时编译器)
了解Java逃逸分析只出现在JIT(Just In Time)进行,就不禁想JIT是什么。
1.1 解释执行和编译执行的区别
解释执行:解释执行是采用匹配执行解释器(解释器是个黑盒,通常也有编译器的组成部分)内部已经编译好的机器码,不是生成新的机器码(也有说法是逐条翻译成机器码?)。 - 由于逐条翻译,程序启动快,但是执行效率不高。
编译执行:运行期间,通过将字节码编译成对应的新的机器码(会将其缓存起来,通过参数-XX:ReservedCodeCacheSize),然后执行。 - 需要先编译出新的机器指令,所以程序启动较慢,但是执行效率高(因为执行的是机器指令)。
下文笔者讲述JIT的简介说明,如下所示
JIT简介
JIT(just in time): 即时编译 使用JIT技术,使Java程序执行速度的加速
java运行流程
java源代码首先通过javac将源代码编译为 字节码文件(.class) 然后再由JVM解析和运行字节码文件 再运行中,为了提高运行速度,则引入了JIT技术 JIT技术就是为频繁执行的代码,加入即时编译,方便下次直接使用,避免多次编译