Moduł odśmiecania pamięci zaczyna się od jakiegoś „głównego” zbioru miejsc, które są zawsze uważane za „osiągalne”, takich jak rejestry procesora, stos i zmienne globalne. Działa poprzez znajdowanie wszelkich wskaźników w tych obszarach i rekurencyjne znajdowanie wszystkiego, na co wskazują. Kiedy już to wszystko znajdzie, wszystko inne to śmieci.
Oczywiście istnieje kilka odmian, głównie ze względu na szybkość. Na przykład większość współczesnych modułów odśmiecania pamięci jest „pokoleniowych”, co oznacza, że dzielą obiekty na pokolenia, a gdy obiekt się starzeje, moduł odśmiecania działa coraz dłużej między okresami, w których próbuje dowiedzieć się, czy ten obiekt jest nadal ważny, czy nie. - zaczyna po prostu zakładać, że jeśli żył długo, są całkiem duże szanse, że będzie żył jeszcze dłużej.
Niemniej jednak podstawowa idea pozostaje ta sama: wszystko opiera się na rozpoczęciu od jakiegoś podstawowego zestawu rzeczy, które wydaje się oczywiste, nadal mogą być używane, a następnie gonienie za wszystkimi wskazówkami, aby znaleźć to, co jeszcze może być w użyciu.
Interesujące na marginesie: często ludzie mogą być zaskoczeni stopniem podobieństwa między tą częścią garbage collectora a kodem służącym do organizowania obiektów dla rzeczy takich jak zdalne wywołania procedur. W każdym przypadku zaczynasz od jakiegoś głównego zestawu obiektów i gonisz wskaźniki, aby znaleźć wszystkie inne obiekty, do których się odnoszą ...