<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 引用計數 ![](../../../../images/screenshot_1610865272023.png) - 每次引用一次 Person,就會在ref上加1(Stack上new Person(),HEAP的Array上引用了一次) ### 基于掃描的實現 - 維護一張引用表 - 每次掃描刪除引用計數為0的節點 ![](../../../../images/screenshot_1610865622994.png) 全部刪除需要掃描兩次 第一次刪除引用為0的,并減少引用次數, 第二次刪除調整后引用為0的 ### 基于圖的實現(常用) ![](../../../../images/screenshot_1610865805489.png) - "0"指向"1",標識"1"被"0"引用 - 圓圈外的為定點,圓圈中的為被引用次數 - 邊有方向,就是有向圖;邊沒有方向,就是無向圖。 - 縱向表示被誰引用 - 橫向表示引用了誰 In-degree 和 out-degree - 縱向標識 In-degree,橫向標識 out-degree - 圖中頂點1的 in-degree=2,也就是有兩條邊進入頂點1 - 圖中頂點1的out- degree=0,也就是有0條邊從頂項點1出去 - **In-degree=0代表可以馬上回收** 用廣度優先(BFS算法)進行圖的表里 ``` queue.enqueue(start) visited ={start} while(queue size>0){ v= queue.dequeue visited.add(v) for u in outNodes(item){ if(!visited contains(u)){ queue enqueue(u) } } } ``` 如 "start" 從"0" 開始,因為"0"的引用計數為0 ,把零列出回收清單中,并且查看到0引用了"1","2",把引用計數減1,如果減去1后引用計數為0,則標識也可以進行回收, #### 一種解決環裝引用的方案 - 增加一個檢測環的程序(BFS) - 發現環,手動刪除一條邊 - 再次從引用計數為0的節點開始BFS回收內存 ![](../../../../images/screenshot_1610867542877.png) ## 問題 - 基于掃描的引用計數策略性能太慢→基于圖的策略 - 每個對象需要多維護一個引用(ref) → 開銷問題 - 如果Gc程序是另外的線程ref的維護會產生競爭條件,處理GC的時候 需要Stop- The-World
                  <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>

                              哎呀哎呀视频在线观看