解释字节码基本上是逐行读取字节码,不进行任何优化或任何操作,然后对其进行解析并实时执行。由于许多原因,这种方法效率低下,其中包括Java字节码设计得不能快速解释的问题。
编译方法时,JIT会加载整个方法并生成直接在CPU上运行的本机代码,而不是逐行读取和解释字节码。编译该方法一次之后,每次调用该方法时都会直接使用生成的本机代码。这在天文速度上更快,但是在编译该方法时会产生一些开销。除其他外,JVM仅负责编译经常调用的方法,以最大程度地减少开销,同时最大程度地提高被频繁调用的“紧密内循环”代码的性能。



