HotSpot虚拟机类加载及优化的原理与实现
摘要本文通过对HosSpot虚拟机类加载工作原理的分析结合HotSpot的源代码研究了类加载的具体细节着重分析了类加载的过程及类在虚拟机中的运行细节应用热点探测的原理达到虚拟机优化的目标。
关键字热点探测虚拟机类优化类加载
1引言
即时编译器编译性能的好坏及代码优化程度的高低作为衡量商用j ava虚拟机的关键技术指标 同时也是虚拟机技术水平的最好体现。 由于j ava虚拟机规范知识规定了字节码指令的动作但并没有规定虚拟机的实现方式。执行引擎的核心动作就是不停读取字节码解释编译执行直到虚拟机进程的退出为止。Sun HotSpot虚拟机执行引擎为解释器与编译器共存的架构方式 内部的编译器是即时编译器主要由Client Compiler和Server Compiler构成解释器与其中的一种构成混合模式的虚拟机执行引擎。
HotSpot的执行引擎采用解释器和即时编译器共存的架构对于一般的代码采用解释器每次读取字节码指令将指令解释乘本地代码并予以执行。这样机制能够有效节约内存减少编译时间让代码更加快速的进入执行状态但是存在代码执行效率低的缺点。即时编译器采用热点代码侦测技术实时把热点代码编译成本地代码调用的时候优先使用本地编译过的代码可以大大提高虚拟机的运行速度。另外不同的编译器还能有效实现局部或全局的代码的优化有效提高字节码的解释效率节约程序的调用时间。
2 HotSpot中的JIT的实现原理
从java虚拟机角度观察 hotspot中类的加载分两种情况一种是启动类加载器的加载器 由CPP代码实现另外一种就是加载其他类的加载器。 以下代码分析的都是在目录 /ope nj dk/hotspo t/s rc/s hare/vm下 以下出现的目录都位于该目录之下。 由于最开始java环境还没有通过CPP代码构建编译的环境
首先 ho tspo t启动时根据运行环境的不同决定使用的寄存器、指令集及缓存大小等判断C P U架构类型在sp arc、 x86、 x86-64或ar m等结构中选择根据架构的不同加载不同的文件。
然后进行加载过程的第一步—验证
1格式的验证主要验证文件的魔数是否正确、主次版本号是否合理、常量池中的常量内类是否合法、常量的索引是否符合、结构是否符合UTF 8编码等。此时如果常量池中的还有内容没有加载便进行常量池的清理就会出现错误。
在前面的文章中就有介绍到半月湾Half Moon Bay Cloud服务商有提供洛杉矶DC5数据中心云服务器,这个堪比我们可能熟悉的某服务商,如果我们有用过的话会发现这个服务商的价格比较贵,而且一直缺货。这里,于是半月湾服务商看到机会来了,于是有新增同机房的CN2 GIA优化线路。在之前的文章中介绍到Half Moon Bay Cloud DC5机房且进行过测评。这次的变化是从原来基础的年付49....
hostwinds怎么样?2021年7月最新 hostwinds 优惠码整理,Hostwinds 优惠套餐整理,Hostwinds 西雅图机房直连线路 VPS 推荐,目前最低仅需 $4.99 月付,并且可以免费更换 IP 地址。本文分享整理一下最新的 Hostwinds 优惠套餐,包括托管型 VPS、无托管型 VPS、Linux VPS、Windows VPS 等多种套餐。目前 Hostwinds...
阿里云国际版注册认证教程-免绑卡-免实名买服务器安全、便宜、可靠、良心,支持人民币充值,提供代理折扣简介SunthyCloud成立于2015年,是阿里云国际版正规战略级渠道商,也是阿里云国际版最大的分销商,专业为全球企业客户提供阿里云国际版开户注册、认证、充值等服务,通过SunthyCloud开通阿里云国际版只需要一个邮箱,不需要PayPal信用卡就可以帮你开通、充值、新购、续费阿里云国际版,服务...