java虚拟机-解释器与编译器

Java最初通过解释器进行解释执行,为了提高代码执行效率,在运行时,对热点代码会把这些代码变成本地平台相关的机器码。完成这个任务的编辑器称为即时编译器,简称JIT编译器。

用户可以使用参数-Xint强制虚拟机运行与“混合模式”,使用-Xcomp强制运行与编译模式。

热点代码有两类:1. 被多次调用的方法2. 被多次执行的循环体

检查热点代码有两种方式:
1.采用热点探测,查找经常出现的栈顶的方法
2.基于计数器的热点探测:为每个方法或者代码块建立计数器,统计技术方法。
HotSpot虚拟机采用第二种方式,为每个方法准备两类计数器:方法调用计数器和回边计数器。默认阀值Client模式1500次,Sever模式10000次,这个阀值设置-XX:ComplieThreshold。

计数器热度衰减:当超过一定时间限度,如果计数器没达到阀值,就会减少一半。
可以通过-XX:-UseCounterDecay来关闭热度衰减。通过-XX:CounterHalfLifeTime参数设置半衰周期时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值