jvm專題二

  1. jvm架構理解


    image.png
  • jvm執(zhí)行流程
    Java編譯成字節(jié)碼、動態(tài)編譯和解釋為機器碼的過程分析:


    image.png

    編譯器和解釋器的協(xié)調工作流程:


    image.png

哪些是熱點代碼?
1、被多次調用的方法。
2、被多次執(zhí)行的循環(huán)體。

如何判斷熱點代碼?
1、基于采樣的熱點探測
采用這種方法的虛擬機會周期性地檢查各個線程的棧頂,如果發(fā)現(xiàn)某些方法經(jīng)常出現(xiàn)在棧頂,那這個方法就是“熱點方法”。
這種探測方法的好處是實現(xiàn)簡單高效,還可以很容易地獲取方法調用關系(將調用堆棧展開即可),缺點是很難精確地確認一個方法的熱度,容易因為受到線程阻塞或別的外界因素的影響而擾亂熱點探測。
2、基于計數(shù)器的熱點探測
采用這種方法的虛擬機會為每個方法(甚至是代碼塊)建立計數(shù)器,統(tǒng)計方法的執(zhí)行次數(shù),如果執(zhí)行次
數(shù)超過一定的閥值,就認為它是“熱點方法”。

這種統(tǒng)計方法實現(xiàn)復雜一些,需要為每個方法建立并維護計數(shù)器,而且不能直接獲取到方法的調用關系,但是它的統(tǒng)計結果相對更加精確嚴謹。
image.png

回邊計數(shù)器
它的作用就是統(tǒng)計一個方法中循環(huán)體代碼執(zhí)行的次數(shù),在字節(jié)碼中遇到控制流向后跳轉的指令稱為“回邊”。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容