栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

JVM执行引擎

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM执行引擎

一、编译过程 1. 后端编译
解释器(Interpreter):
 -  Java虚拟机启动后,根据预定义的规范,对字节码采用逐行解释的方式执行
 - 将每条字节码文件中的内容翻译为对应平台的本地机器指令执行

JIT(Just In Time Compiler)编译器:
 - 虚拟机将源代码直接编译成和本地机器相关的机器语言

2. 机器码
1. 采用二进制编码方式表示的指令,叫做机器指令码。一开始就是直接用这种方式来编程
2. 机器语言被计算机理解接受,但和人类语言差别太大,编程容易出错
3. 编写的程序,cpu直接读取运行,因此执行速度最快
4. 机器指令与cpu密切相关,不同种类的cpu所对应的机器指令不同
3. 指令
- 机器指令是由0和1组成的,不方便,因此发明了指令
- 指令就是把机器码中特定的0和1的序列,简化成对应的指令,如mov,inc,可读性提高
- 不同的硬件平台,执行同一个操作,对应的机器码不同,所以不同的硬件的同一个指令mov,对应的机器码不同
4. 指令集
1. 不同的硬件平台,各自支持的指令,是有差别的。因此每个平台所支持的指令,成为对应平台的指令集
  - x86指令集:对应x86架构的平台
  - ARM指令集:对应的是ARM架构的平台  
5. 高级语言
计算机执行高级语言编写的程序时,仍然需要把程序解释和编译成机器的指令码
- 该过程就叫解释程序或编译程序

6. 字节码
  • 主要目的是为了跨平台
6.1 不用字节码不是也可以实现跨平台吗
  • 单一指责
  • 保护源码
  • 提高速度
6.2 解释器的工作任务
  • 低效
- 将字节码中的文件内容翻译为对应平台的本地机器指令执行
- 当一条字节码指令被解释执行完成后,再根据PC寄存器中记录的下一条需要被执行的字节码指令执行解释操作
二、JIT编译器
  • 编译执行:直接编译成机器码。现代虚拟机为了提高执行效率,会使用即时编译技术(JIT, Just In Time), 将二进制字节码,直接编译成机器码后再执行
HotSpot VM
 - 目前市面上高性能虚拟机的代表之一
 - 采用解释器和即使编译器并存的架构
 - 相互协作,各自取长补短
 
- 如今,Java的运行程序性能已经可以和C/C++一较高下
1. 热点代码怎么发现

2. 两种 JIT编译器


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号