当前位置: 首页 > news >正文

个人网站能 做淘客吗b站好看的纪录片免费

个人网站能 做淘客吗,b站好看的纪录片免费,杭州外贸公司名单,优秀网站设计有哪些文章目录 1. 执行引擎的工作流程2. 解释器、JIT及时编译器3. 热点代码及探测技术4. HotSpotVM 中 JIT 分类 执行引擎属于 JVM 的下层,里面包括解释器、及时编译器、垃圾回收器 JVM 的主要任务是负责 装载字节码到其内部,但字节码并不能够直接运行在操作…

文章目录

  • 1. 执行引擎的工作流程
  • 2. 解释器、JIT及时编译器
  • 3. 热点代码及探测技术
  • 4. HotSpotVM 中 JIT 分类

执行引擎属于 JVM 的下层,里面包括解释器、及时编译器、垃圾回收器
在这里插入图片描述
JVM 的主要任务是负责 装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被 JVM 所识别的字节码指令、符号表,以及其他辅助信息。
那么,如果想要让一个 Java 程序运行起来,执行引擎(Execution Engine)的任务就是将字节码指令解释/编译为对应平台上的本地机器指令.才可以。

1. 执行引擎的工作流程

  1. 执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于 PC 寄存器。
  2. 每当执行完一项指令操作后,PC 寄存器就会更新下一条需要被执行的指令地址。
  3. 当然方法在执行的过程中,执行引擎有可能会通过存储在局部变量表中的对象引用准确定位到存储在 Java 堆区中的对象实例信息,以及通过对象头中的元数据指针定位到目标对象的类型信息。
    在这里插入图片描述

2. 解释器、JIT及时编译器

在这里插入图片描述

解释器工作机制
解释器真正意义上所承担的角色就是一个运行时“翻译者”,将字节码文件中的内容“翻译”为对应平台的本地机器指令执行。

当一条字节码指令被解释执行完成后,接着再根据 PC 寄存器中记录的下一条需要被执行的字节码指令执行解释操作。

JIT 编译器
(直接编译成机器码,但是要知道不同机器上编译的机器码是不一样,而字节码是可以跨平台的)。现代虚拟机为了提高执行效率,会使用即时编译技术(JIT,Just In Time)将方法编译成机器码后再执行

3. 热点代码及探测技术

当然是否需要启动 JIT 编译器将字节码直接编译为对应平台的本地机器指令,则需要根据代码被调用执行的频率而定。关于那些需要被编译为本地代码的字节码,也被称之为“热点代码”,JIT 编译器在运行时会针对那些频繁被调用的“热点代码”做出深度优化,将其直接编译为对应平台的本地机器指令,以此提升 Java 程序的执行性能。

采用基于计数器的热点探测,HotSpot VM 将会为每一个方法都建立 2 个不同类型的计数器,分别为方法调用计数器(Invocation Counter)和回边计数器(Back Edge Counter)。

  • 方法调用计数器用于统计方法的调用次数
  • 回边计数器则用于统计循环体执行的循环次数

方法调用计数器:这个计数器就用于统计方法被调用的次数,它的默认阀值在 Client 模式下是 1500 次,在 Server 模式下是 10000 次。超过这个阈值,就会触发 JIT 编译。
回边计数器:它的作用是统计一个方法中循环体代码执行的次数,在字节码中遇到控制流向后跳转的指令称为“回边”(Back Edge)。显然,建立回边计数器统计的目的就是为了触发 OSR 编译。栈上替换,或简称为OSR(On Stack Replacement)编译。


  • -Xint`:完全采用解释器模式执行程序;
  • -Xcomp:完全采用即时编译器模式执行程序。如果即时编译出现问题,解释器会介入执行
  • -Xmixed:采用解释器+即时编译器的混合模式共同执行程序。

4. HotSpotVM 中 JIT 分类

JIT 的编译器还分为了两种,分别是 C1 和 C2,在 HotSpot VM 中内嵌有两个 JIT 编译器,分别为 Client Compiler 和 Server Compiler,但大多数情况下我们简称为 C1 编译器 和 C2 编译器。

C1 和 C2 编译器不同的优化策略:
在不同的编译器上有不同的优化策略,C1 编译器上主要有方法内联、去虚拟化、冗余消除

  • 方法内联:将引用的函数代码编译到引用点处,这样可以减少栈帧的生成,减少参数传递以及跳转过程
  • 去虚拟化:对唯一的实现类进行内联
  • 冗余消除:在运行期间把一些不会执行的代码折叠掉

C2 的优化主要是在全局层面,逃逸分析(前面讲过,并不成熟)是优化的基础。基于逃逸分析在 C2 上有如下几种优化:

  • 标量替换:用标量值代替聚合对象的属性值
  • 栈上分配:对于未逃逸的对象分配对象在栈而不是堆
  • 同步消除:清除同步操作,通常指 synchronized

一般来讲,JIT 编译出来的机器码性能比解释器高。C2 编译器启动时长比 C1 慢,系统稳定执行以后,C2 编译器执行速度远快于 C1 编译器

http://www.rdtb.cn/news/12009.html

相关文章:

  • 表白网址在线制作平台seo研究所
  • 建设银行网站上改手机广州白云区最新信息
  • 关于协会网站建设的意见seo优化工作内容
  • 江苏省建设工程竣工备案网站关键词的优化方案
  • 网站元素优化 移动站深圳seo培训
  • asp+sql server典型网站建设案例(源码)3深圳网络公司推广公司
  • 做游戏网站教程安徽网络推广和优化
  • 海兴网站建设什么是核心关键词
  • 厦门网站建设公司排名seo推广营销靠谱
  • mui做网站长尾关键词挖掘工具
  • 第一营销网百度推广seo是什么意思
  • 网站建设会议议程qq群怎么优化排名靠前
  • 《水利建设与管理》杂志社网站最佳的搜索引擎
  • 2017我们一起做网站外贸网络营销
  • 下载网站源文件百度联盟官网登录入口
  • wordpress商店主题搜索引擎优化技巧
  • 亿网行网站建设网络推广与推广
  • 网站消息推送旺道seo优化软件
  • wordpress 用户关注开发东莞整站优化排名
  • 表白网站制作代码大连百度网站排名优化
  • 德尔普网络做网站怎么样成人零基础学电脑培训班
  • wordpress大学打不开宁波seo网络优化公司
  • 中信建设有限责任公司海外seo
  • 网站的url个人网站推广
  • 网站怎么做阿里妈妈转链网站建设开发外包公司
  • 软件推荐网站优化技术
  • 客服管理软件系统seo排名优化公司
  • 网站规划和构成怎么样优化关键词排名
  • 如何将wordpress上传到站点广点通和腾讯朋友圈广告区别
  • 湖南省城乡建设厅网站查证朝阳区seo