执行引擎在执行字节码指令的时候,是解释执行的,也就是每个字节码指令都会被解释成一个底层的 CPU 指令,但是这样的解释执行效率比较差,JVM 对此进行了优化,将频繁执行的代码编译为底层 CPU 指令存储起来,后面再执行的时候,直接执行编译好的指令,不再解释执行,这就是 JVM 的即时编译 JIT。
<aside> 💡 Web 应用程序通常是长时间运行的,使用 JIT 会有很好的优化效果,可以通过 -server 参数打开 JIT 的 C2 编译器进行优化。
</aside>