美文网首页
jvm专题二

jvm专题二

作者: RainySpring | 来源:发表于2020-05-21 21:36 被阅读0次
    1. jvm架构理解


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


      image.png

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


      image.png

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

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

    这种统计方法实现复杂一些,需要为每个方法建立并维护计数器,而且不能直接获取到方法的调用关系,但是它的统计结果相对更加精确严谨。 image.png
    回边计数器
    它的作用就是统计一个方法中循环体代码执行的次数,在字节码中遇到控制流向后跳转的指令称为“回边”。

    相关文章

      网友评论

          本文标题:jvm专题二

          本文链接:https://www.haomeiwen.com/subject/xohxahtx.html