jvm是怎么判断代码是热点代码的?

jvm判断代码是热点代码有两种方法. 抽样判断和计算器判断

抽样判断:jvm周期性去栈顶查看被调用的方法.若经常出现的方法,就视为热点代码,这种方法实现起来简单,缺点是很难精确的知道一个方法的热度,容易受线程堵塞和外界因素的影响.

计算器判断:是通过计算器来判断代码被调用的次数.虚拟机给方法或者代码块建立计算器,统计方法被调试的次数.超过一一定次数,就视为热点代码. 就触发JIT编译.

hotspot使用的是计算器判断. 它使用了两类计数器:方法调用计数器和回边计数器.

 

posted @ 2021-02-27 10:15  爱摇头的封三  阅读(236)  评论(0编辑  收藏  举报