Chapter7-JVM性能調優入門

  • 大頁面支持
    • Linux上的大頁面支持
      • 1.-XX:+UseLargePages
      • 2.修改OS的配置(依據Linux發行版和內核不同,其修改也不同)
      • 3.如Linux中大頁面配置不正確, HotSpot VM會接受上面選項,但是會報告無法獲取大頁面,最后回退到OS默認支持的頁面大小
      • 4.了解即可, 基本碰不到要配置此參數


  • 逃逸分析(escape analysis)
    • -XX:+DoEscapeAnalysis
    • 評估Java對象可見范圍, 尤其是指由某個線程創建的Java對象在另一個線程中可以訪問,此時稱該對象逃逸了.
    • 如果Java對象不發生逃逸,則可以采取其他方法進行優化,這種優化技術稱為逃逸分析
    • JIT編譯器可以采取的優化技術有
      • 1.對象展開
      • 2.標量替換
      • 3.棧上分配
        • 線程的棧幀上分配而非堆,由于對象不逃逸,不被其他線程訪問,則可以在線程私有的棧幀上分配,減少堆上對象的數目,減輕gc的頻率
      • 4.消除同步
        • 如果該對象不逃逸,則當前線程持有該對象鎖,其他線程訪問不了該對象,則該鎖可以由JIT消除
      • 5.消除垃圾收集的讀/寫屏障
        • 對象不逃逸,該對象只能從線程本地的根節點訪問,因此在其他對象中存儲其地址時不需要執行讀或寫屏障
        • 只有在對象可以被另一個線程訪問時才需要讀/寫屏障
        • 讀或寫屏障

  • 極端示例

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,726評論 0 11
  • 1.一些概念 1.1.數據類型 Java虛擬機中,數據類型可以分為兩類:基本類型和引用類型。基本類型的變量保存原始...
    落落落落大大方方閱讀 4,562評論 4 86
  • Java 應用性能優化是一個老生常談的話題,典型的性能問題如頁面響應慢、接口超時,服務器負載高、并發數低,數據庫頻...
    Rick617閱讀 7,367評論 1 9
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,340評論 11 349
  • 當在一個Excel表格中錄制宏,保存方式為”個人宏工作簿“時,宏錄制結束,直接保存Excel表格時,將會出現如下警...
    霹靂小青龍閱讀 6,796評論 0 2