jvm专题二

  1. jvm架构理解


    image.png
  • jvm执行流程
    Java编译成字节码、动态编译和解释为机器码的过程分析:


    image.png

    编译器和解释器的协调工作流程:


    image.png

哪些是热点代码?
1、被多次调用的方法。
2、被多次执行的循环体。

如何判断热点代码?
1、基于采样的热点探测
采用这种方法的虚拟机会周期性地检查各个线程的栈顶,如果发现某些方法经常出现在栈顶,那这个方法就是“热点方法”。
这种探测方法的好处是实现简单高效,还可以很容易地获取方法调用关系(将调用堆栈展开即可),缺点是很难精确地确认一个方法的热度,容易因为受到线程阻塞或别的外界因素的影响而扰乱热点探测。
2、基于计数器的热点探测
采用这种方法的虚拟机会为每个方法(甚至是代码块)建立计数器,统计方法的执行次数,如果执行次
数超过一定的阀值,就认为它是“热点方法”。

这种统计方法实现复杂一些,需要为每个方法建立并维护计数器,而且不能直接获取到方法的调用关系,但是它的统计结果相对更加精确严谨。
image.png

回边计数器
它的作用就是统计一个方法中循环体代码执行的次数,在字节码中遇到控制流向后跳转的指令称为“回边”。

你可能感兴趣的:(jvm专题二)