<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 多層編譯 Java7默認開啟分層編譯(tiered compilation)策略,由C1編譯器和C2編譯器相互協作共同來執行編譯任務。C1編譯器會對字節碼進行簡單和可靠的優化,以達到更快的編譯速度;C2編譯器會啟動一些編譯耗時更長的優化,以獲取更好的編譯質量。 (1)解釋器不收集運行狀態信息,只用于啟動并觸發C1編譯 (2)C1編譯后生成帶收集運行信息的代碼 (3)C2編譯,基于C1編譯后代碼收集的運行信息進行激進優化,當激進優化的假設不成立時,再退回使用C1編譯的代碼 程序在未編譯期間解釋執行有個閾值,SunJDK主要依據方法上的兩個計數器是否超過閾值來判斷: * A、**調用計數器**,即方法被調用的次數,CompileThreshold,該值是指當方法被調用多少次后,就編譯為機器碼,client模式默認為1500次,server模式默認為1萬次,可以在啟動時添加-XX:CompileThreshold=10000來設置該值。 * B、**回邊計數器**,即方法中循環執行部分代碼的執行次數,OnStackReplacePercentage,該值用于/參與計算是否觸發OSR編譯的閾值,client默認為933,sever默認為140,可以通過-XX: OnStackReplacePercentage=140來設置。 client模式下的計算規則為CompileThreshold\*OnStackReplacePercentage/100, server模式下計算規則為CompileThreshold\*(OnStackReplacePercentage-InterpreterProfilePercentage)/100。InterpreterProfilePercentage,默認為33。 當方法上的回邊計數器到達這個值時,觸發后臺的OSR編譯,并將方法上累積的調用計數器設置為CompileThreshold 的值,同時將回邊計數器設置為CompileThreshold/2的值。這樣做一方面是為了避免OSR編譯頻繁被觸發,另一方面是以便當方法被再次調用時即觸發正常的編譯,當累積的回邊計數器的值再次達到該值時先檢查OSR編譯是否完成,如果已完成,則在執行循環體的代碼時進入編譯后的代碼,如果未完成,繼續把當前回邊計數器的累計值再減掉一些,默認情況下,對于回邊的情況,server模式下只要回邊次數達到10700次(10000\*(140-33)),就會觸發OSR編譯。 JDK 8 實際是解釋和編譯混合的一種模式,即所謂的混合模式\(-Xmixed\);
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看