1.什么是JIT编译器
JIT编译器,即Just-In-Time Compiler(即时编译器)。JIT编译属于动态编译(即运行时编译)的一种,与之对应的是静态编译(AOT)。
2.为什么要用JIT编译器
我们都知道,通常通过javac将程序源代码编译(前端编译,与语言有关,机器无关)成字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多,这就是传统的解释器(Interpreter)的功能。为了解决这种效率问题,引入了JIT技术。
3.JIT编译器是如何工作的
JIT 工 作 原 理 图
Java程序还是通过解释器进行解释执行,当JVM发现某个方法或代码块运行特别频繁的时候,就会认为这是“热点代码”(Hot Spot Code),然后JIT会把部分“热点代码”翻译成本地机器相关的机器码,并进行优化,然后把翻译后的机器码缓存起来,下次可以直接使用。
HotSpot虚拟机中内置两个JIT编译器:Client Compiler和Server Com