18禁超污无遮挡无码网址极速丨亚洲精品久久国产片400部丨黑人巨茎美女高潮视频丨18禁裸乳啪啪无遮裆网站丨免费1级做爰片1000部视频

×
新網 > 虛擬主機 > 正文

Java 虛擬機總結給面試的你

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-15 14:39:33

本篇主要針對Java虛擬機的晚期編譯優化,Java內存模型與線程,線程安全與鎖優化進行總結,其余部分總結請點擊Java虛擬總結上篇 ,Java虛擬機總結篇。

   本篇主要針對Java虛擬機的晚期編譯優化,Java內存模型與線程,線程安全與鎖優化進行總結,其余部分總結請點擊Java虛擬總結上篇 ,Java虛擬機總結篇。

20130808152352_5840.jpg

<div>  一.晚期運行期優化
  即時編譯器JIT的作用就是熱點代碼轉換為平臺相關的機器碼,并進行優化,它并不是一個虛擬機所必須的部分,只能說有它是錦上添花。
  熱點代碼
  熱點代碼分類
   被多次調用的方法
   被多次調用的循環體
  熱點探測判定方法
  ·基于采樣的熱點探測,虛擬機周期性地檢查棧頂,發現某個方法經常出現在棧頂,那么這個方法就是熱點方法,簡單高效但不精確
   基于計數器熱點探測,為每個方法建立計數器來統計執行次數,超過閾值就是熱點方法,Hotpot就是采用這種方法。分為方法計數器(統計方法),回邊計數器(統計循環)
  編譯過程(Client Complier)
  第一階段:將字節碼構造成高級中間代碼表示(HIR)
  第二階段:將HIR變為LIR
  第三階段:使用線性掃描算法,在LIR上分配寄存器,產生機器代碼
  優化方法
  公共子表達式優化
  當一個表達式A的結果已經計算過了,且A中的所有變量都沒有發生過變化,那么下一次要用到A時就不用計算了,而是直接取之前A的結果。
  數組邊界檢查消除
  方法內聯
  逃逸分析
  逃逸的定義:一個在方法里定義的變量,作為參數傳遞給其他方法(方法逃逸),或者賦值給類變量(線程逃逸)。
  優化方法:
  棧上分配:不會逃逸的對象就不在堆上分配了,就在棧上分配,那么對象所占的空間就可以隨棧幀的出棧而銷毀,減少垃圾收集系統的壓力。
  同步消除:如果一個變量肯定不會逃逸出線程,那么關于這個變量的同步措施就可以去掉。

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading