<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 有關 Go 垃圾收集器操作的更多信息 這一小節會深入探索 go 垃圾回收器。 go 垃圾回收器的主要關注點是低延遲,也就是說為了進行實時操作它會有短暫的暫停。另一方面,創建新對象然后使用指針操作存活對象是程序始終在做的事情,這個過程可能最終會創建出不會再被訪問到的對象,因為沒有指向那些對象的指針。這種對象即為垃圾對象,它們等待被垃圾回收器清理然后釋放它們的空間。之后它們釋放的空間可以再次被使用。 垃圾回收中使用的最簡單的算法就是經典的**標記清除算法(mark-and-sweep)**:算法為了遍歷和標記堆中所有可觸達對象,會把程序停下來(**stop the world**)。之后,它會去清掃(sweeps)不可觸達的對象。在算法的標記(mark)階段,每個對象被標記為白色、灰色或黑色。灰色的子對象標記為灰色,而原始的對象此時會標記為黑色。沒有更多灰色對象去檢查的話就會開始清掃階段。這個技術適用是因為沒有從黑色指向白色的指針,這是算法的基本不變要素。 盡管標記清除算法很簡單,但是它會暫停程序的運行,這意味著實際過程中它會增加延遲。go 會通過把垃圾回收器作為一個并發的處理過程,同時使用前一節講的三色算法,來降低這種延遲。但是,在垃圾回收器并發運行時候,其它的過程可能會移動指針或者創建對象,這會讓垃圾回收器處理非常困難。所以,讓三色算法并發運行的關鍵點就是,維持標記清除算法的不變要素即沒有黑色的對象能夠指向白色集合對象。 因此,新對象必須進入到灰色集合,因為這種方式下標記清除的不變要素不會被改變。另外,當程序的一個指針移動,要把指針所指的對象標記為灰色。你可以說灰色集合是白色集合和黑色集合中間的“屏障”。最后,每次一個指針移動,會自動執行一些代碼,也就是我們之前提到的**寫屏障**,它會去進行重新標色。 為了能夠并發運行垃圾回收器,寫屏障代碼產生的延遲是必要的代價。 注意**Java**程序語言有許多垃圾回收器,它們在各種參數下能夠進行高度配置。其中一種垃圾回收器叫 G1,推薦在低延遲應用的程序使用它。 > Tip: 一定要記住,Go 垃圾回收器是一個實時的垃圾回收器 ,它是和其他 goroutines 一起并發運行的。 在第 11 章*代碼測試,優化以及分析*,你會學習到如何能夠用圖表的方式呈現程序的性能。這一章節也會包括一些關于 Go 垃圾回收器操作的一些信息。
                  <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>

                              哎呀哎呀视频在线观看