1. 程式人生 > >垃圾收集演算法——標記-清除演算法

垃圾收集演算法——標記-清除演算法

此垃圾收集演算法分為“標記”和“清除”兩個階段:

  首先標記出所有需要回收的物件,在標記完成後統一回收所有被標記物件,它的標記過程前面已經說過——如何判斷物件是否存活/死去

  死去的物件就會被標記,然後被清除。

它主要有兩點不足:

  一個是效率問題,標記和清除兩個過程的效率都不高;

  另一個是空間問題,標記清除之後會產生大量不連續的空間碎片,空間碎片太多可能會導致以後再程式執行過程中需要分配較大物件時,

  無法找到足夠的連續記憶體而不得不提前觸發另一次垃圾收集動作。

標記-清除演算法的執行過程如下圖所示: