6.1. Dvoufázové značkování

Metoda dvoufázového značkování („mark and sweep“) vychází z toho, že jsme schopni najít všechny „kořenové ukazatele“ (globální proměnné, registry, lokální proměnné) a víme, kde jsou v datech umístěny další ukazatele. Rekurzivním průchodem jsme pak schopni označit postupně všechny bloky paměti, dostupné z kořenových ukazatelů, a zbývající neoznačené bloky uvolnit a znovu využít pro další požadavky na přidělení paměti.

Tato metoda vyžaduje znalost struktury objektů za běhu aplikace; uplatní se tedy nejlépe v interpretovaných jazycích, kde v době běhu máme tyto informace stále k dispozici. U ostatních jazyků pak vyžaduje jistou součinnost překladače, např. generování metadat o rozmístění ukazatelů do cílového programu.