【深入理解Java虚拟机】HotSpot虚拟机JIT编译器

JIT编译器(Just In Time Complier),通常在java程序通过解释器进行解释执行时,当虚拟机发现某个方法或者代码块的运行特别频繁时,就会把这些代码认为是热点代码(Hot Spot code),虚拟机为了提高热点代码的执行效率,在运行时,虚拟机就把这些代码编译成为与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器成为即时编译器。

一:解释器和编译器

HotSpot是采用解释器和编译器混合的方式,能更有效的提高效率。
HotSpot虚拟机内置了两个即时编译器,分别称为Client Complier和Server Complier,或者简称为C1编译器和C2编译器。

查看虚拟机版本:
在这里插入图片描述
Mixde mode 混合模式,表示虚拟机采用解释器和编译器搭配使用的方式。

也可以强制使用参数 “-Xint” 强制指定虚拟机为 解释模式(Interpreted Mode)
在这里插入图片描述
或者通过参数“-Xcomp”强制虚拟机运行为 编译模式(Compiled Mode)
在这里插入图片描述
这时候将优先采用编译方式执行程序,但是解释器仍然要在编译无法进行的情况下介入执行过程。

由于JIT编译器编译本地代码需要占用程序运行时间,要编译出优化程度更高的代码所花费的时间更长,且解释器可能还要替编译器收集性能监控信息,这对解释器执行速度有影响。因此,HotSpot采用分层编译(Tiered Compilat

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值