Boehm-féle konzervatív szemétgyűjtés.
Boehm a krapek, aki kitalálta. A "konzervatív" azt jelenti, hogy semmit nem tételez fel a fordítóról, programról, hanem lényegében egy tetszőleges programban le tudja takarítani a nem hivatkozott memória-objektumokat.
Mark & sweep algoritmussal működik. Mark=bejelöl, sweep=takarít. A stackről kiindulva a program _minden_ pointernek kinéző adatát pointernek tételezi fel, ami egy memóriablockra mutat, abban szintén minden adatot pointernek feltételez, stb. (gráfbejárás). Bejelöli azokat a memóriablokkokat, amiket így elér (mark). Az összes többi memóriablokkot (tehát, amiket nem ért el) kitakarítja (sweep).
Az itt a baj, hogy a Boehm-gc semmilyen segítséget nem kap a programtól. Pl. az is csak egy feltételezés, hogy mik a pointerek. Egy natív szemétgyűjtés viszont együttműködik a futtatórendszerrel. Ismert, hogy hol vannak pointerek. A pointerek mozgatása lockolja a gc-t.
--
CCC3