2012-01-11 73 views
2

標記清除垃圾回收器的第一個階段是標記(查找)堆中的所有活動對象。要做到這一點,必須有一個起點或根,從所有標記開始的地方開始。 GC如何識別這些根源?垃圾收集器如何識別根

回答

2

使用所謂根集enumeratios所有根將被識別技術。下面是馬克掃專利文獻的句子。

在第一階段中,可以識別對當前正在運行的程序中的對象的所有直接引用。這些參考被稱爲根,或者一起被稱爲根集,並且識別所有這些參考的過程可以被稱爲根集枚舉。

這裏是專利文獻的鏈接。 Mark sweep patent link

儘管這是由.NET的傢伙,我覺得Basics of mark sweep鏈接將讓你很好的理解它是如何工作的。

2

「A傑出的組對象被假定爲可到達的。這些被稱爲根部典型地,這些包括所有在調用棧中的任何地方引用的對象(即,所有的局部變量和參數的函數目前正在調用),和任何全局變量。

Wikipedia