JVM 执行引擎

简介: JVM 执行引擎

基本介绍

执行引擎:Java 虚拟机的核心组成部分之一,类加载主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,需要执行引擎将字节码指令解释/编译为对应平台上的本地机器指令,进行执行

虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力:

  • 物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上
  • 虚拟机的执行引擎是由软件自行实现的,可以不受物理条件制约地定制指令集与执行引擎的结构体系

Java 是半编译半解释型语言,将解释执行与编译执行二者结合起来进行:

  • 解释器:根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容翻译为对应平台的本地机器指令执行
  • 即时编译器(JIT : Just In Time Compiler):虚拟机运行时将源代码直接编译成和本地机器平台相关的机器码后再执行,并存入 Code Cache,下次遇到相同的代码直接执行,效率高

执行方式

HotSpot VM 采用解释器与即时编译器并存的架构,解释器和即时编译器能够相互协作,去选择最合适的方式来权衡编译本地代码和直接解释执行代码的时间

HostSpot JVM 的默认执行方式:

  • 当程序启动后,解释器可以马上发挥作用立即执行,省去编译器编译的时间(解释器存在的必要性
  • 随着程序运行时间的推移,即时编译器逐渐发挥作用,根据热点探测功能,将有价值的字节码编译为本地机器指令,以换取更高的程序执行效率

HotSpot VM 可以通过 VM 参数设置程序执行方式:

  • -Xint:完全采用解释器模式执行程序
  • -Xcomp:完全采用即时编译器模式执行程序。如果即时编译出现问题,解释器会介入执行
  • -Xmixed:采用解释器 + 即时编译器的混合模式共同执行程序
目录
相关文章
|
21天前
|
存储 缓存 自然语言处理
(三)JVM成神路之全面详解执行引擎子系统、JIT即时编译原理与分派实现
执行引擎子系统是JVM的重要组成部分之一,在JVM系列的开篇曾提到:JVM是一个架构在平台上的平台,虚拟机是一个相似于“物理机”的概念,与物理机一样,都具备代码执行的能力。
|
2月前
|
存储 Java 编译器
JVM系列7-虚拟机字节码执行引擎
JVM系列7-虚拟机字节码执行引擎
22 1
|
3月前
|
存储 自然语言处理 前端开发
深入浅出JVM(七)之执行引擎的解释执行与编译执行
深入浅出JVM(七)之执行引擎的解释执行与编译执行
|
缓存 Java 编译器
jvm组成-执行引擎
了解jvm组成-执行引擎
49 0
|
存储 缓存 前端开发
【jvm系列-07】深入理解执行引擎,解释器、JIT即时编译器
【jvm系列-07】深入理解执行引擎,解释器、JIT即时编译器
306 2
|
11月前
|
Java 编译器
JVM执行引擎、对象实例化、String相关知识
执行引擎就是执行内存中的指令,将字节码指令解释/编译为对应平台上的本地机器指令,充当了将高级语言翻译为机器语言的使者。
55 0
|
监控 前端开发 Java
jvm之执行引擎解读(下)
jvm之执行引擎解读(下)
|
存储 缓存 自然语言处理
|
存储 JavaScript 前端开发
JVM系列7-虚拟机字节码执行引擎
JVM系列7-虚拟机字节码执行引擎
75 0
|
存储 缓存 监控
<JVM上篇:内存与垃圾回收篇>09 - 执行引擎
<JVM上篇:内存与垃圾回收篇>09 - 执行引擎
<JVM上篇:内存与垃圾回收篇>09 - 执行引擎