热门问题
时间线
聊天
视角

追蹤垃圾回收

来自维基百科,自由的百科全书

Remove ads

在計算機編程中,跟蹤垃圾收集(英語: Tracing garbage collection )是一種自動內存管理的算法,該算法通過分析某些「根」對象的引用關係,來確定需要保留的可訪問對象,並釋放其餘的不可訪問對象的內存空間。該算法在實際的軟體工程中得到了廣泛的應用。[1][2]

跟蹤垃圾收集是最常見的垃圾收集方式,以至於「垃圾收集」通常是指跟蹤垃圾收集,而不是引用計數之類的其他方法[原創研究?]

對象的可達性

簡單地說,如果可以從任何一個已經定義的變量開始,直接或者通過其他對象的引用來訪問到某個對象,則該對象是可訪問的。[原創研究?]更準確地說,只有以下兩種對象是可達的:

  • 程序代碼直接定義的變量與對象都是可達的。通常這些對象包括從調用堆疊中任何位置引用的所有對象(即當前正在調用的函數中的所有局部變量和參數)以及任何全局變量[原創研究?]
  • 可訪問對象引用的任何對象都是可達的。[2]也就是說,可達性是傳遞閉包的。

強引用和弱引用

弱集合

基本算法

樸素的標記和掃描

標記-移動算法

參考連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads