JVM 执行引擎

1 什么是 JVM 执行引擎
执行引擎是 Java 虚拟机核心的组成部分之一。JVM 的将字节码装载到内存,但字节码
并不能够直接运行在操作系统之上。为了执行内存中的字节码文件指令,执行引擎
(Execution Engine)就要将 字节码指令 解释/编译为对应平台上的 本地机器 指令。
执行引擎的翻译过程有两种:1、通过解释器将字节码文件转为机器指令执行;2、使
10 用即时编译器(JIT)将字节码文件的二进制流编译成机器指令执行。
目前市面的主流 JVM 采用解释器与即时编译器并存的架构。在 Java 虚拟机运行时,
释器 即时编译器 相互协作,取长补短。在今天,Java 程序的运行性能早已脱胎换骨,已经
达到了可以和 C/C++程序一较高下的地步。
2 解释器与即时编译器
解释器 每次解释都会将字节码文件解释为机器指令。整体效率较低,但当程序启动后,
解释器可以马上发挥作用,省去编译的时间,立即执行。
即时编译器 则会将字节码文件编译为机器指令,存在方法区中,编译完成后直接执行本
地机器指令即可。编译器把代码编译成本地代码需要一定的执行时间,但编译为本地代码后
执行效率高。
当 Java 虚拟器启动时,解释器首先发挥作用,不必等待即时编译器全部编译完成后再
执行。随着时间的推移,编译器把越来越多的代码编译成本地代码,此时运行本地机器指令,
获得更高的执行效率。

你可能感兴趣的:(jvm)