Obsah:
Definice - Co znamená Garbage Collector?
Sběratel odpadu je kus softwaru, který provádí automatickou správu paměti. Jeho úkolem je uvolnit nepoužitou paměť a zajistit, aby během jejího používání nebyla uvolněna žádná paměť. Některé jazyky, jako jsou jazyky Java a .NET, mají automatický sběr odpadu, zatímco jiné jako C / C ++ vyžadují, aby programátor ručně spravoval paměť.
Techopedia vysvětluje sběratele odpadu
Sběr odpadu byl poprvé představen tvůrcem Lispem Johnem McCarthym, aby usnadnil ruční správu paměti při práci s jazykem Lisp.
Tři hlavní techniky používané sběratelem odpadu k provádění automatické správy paměti jsou následující:
- Počítání referencí - Odkaz na každý objekt se počítá pomocí proměnné čítače. Když čítač dosáhne nuly, znamená to, že předmět již není potřeba, a proto je recyklován.
- Mark and sweep - Ve všech datových oblastech je proveden rekurzivní přechod všech dosažitelných objektů a označené objekty jsou označeny. Neoznačené objekty jsou poté recyklovány.
- Stop and copy - Halda paměti je rozdělena na dvě části: část obsahující objekty a prázdnou část, kde jsou objekty přeneseny (zkopírovány), pokud se zjistí, že jsou označeny. Neoznačené objekty v první části se recyklují vyprázdněním.
Po uvolnění bloku paměti přiřazeného ukazateli / objektu musí být ukazatel / objekt resetován na nulovou hodnotu; jinak to visí, tj. ukazuje na neplatný paměťový blok.
Sběr odpadu pomáhá snižovat chyby a bezpečnostní rizika způsobená visícími ukazateli a problémy s únikem paměti.
Nevýhody použití sběratele odpadu zahrnují další režii na zdroje a výkon. Provoz sběratele odpadu může také zpomalit systém a tím snížit jeho výkon.
