JIT最佳化策略摘錄

來源:互聯網
上載者:User
以上內容摘自《Java Program in Action》(Kris Mok)
一。選擇性的最佳化
    擇要最佳化的代碼
    其中,擇要最佳化癿代碼路徑擇最佳化癿程度.
       追求互動性的時候只選用效費比高的最佳化演算法。
    追求頂峰效能時選擇合適的代碼進行高度最佳化。
    傳統的編譯器最佳化演算法都可以有選擇性得到應用

二。為常見情況而最佳化
    避開非常見情況,留下“逃生門”。
三。固有函數(intrinsics)
    有些Java方法在HotSpot中直接用硬體的特殊指令來實現。
    如Math.sin()、Unsafe.compareAndSwapInt()之類。
    調用這些方法,在解釋模式有可能還是調用了本地方法,而在被JIT編譯的代碼中則直接把其中的操作內聯進來。
四。由解釋轉為編譯
    由計數器觸發JIT編譯。
    方法調用讀數器,回邊讀數器,OSR編譯,讀數器衰減,profiling。
五。隱式異常處理
    對null 指標、棧溢出等異常情況不顯式檢查,而是直接產生不檢查錯誤的代碼。
    1.在正常執行時不會因為要檢查異常條件而帶來任何開銷
    2.在異常發生時速度比顯式檢查異常條件慢
    3.若檢測到異常經常發生則重新編譯,產生顯式檢查異常條件代碼。
 
六。逃逸分析(escape analysis)
    檢查某個對象的使用是否只在某個受限範圍內(方法內/線程內)。
    可以為其它最佳化提供機會。
    1.標量替換
    2.棧上分配
    3.鎖削除

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.