Obsah:
Definice - Co znamená Garbage Collection (GC)?
Sběr odpadu (GC) je dynamický přístup k automatické správě paměti a přidělování haldy, který zpracovává a identifikuje bloky mrtvé paměti a přerozděluje úložiště pro opětovné použití. Hlavním účelem sběru odpadu je omezit úniky paměti.
Implementace GC vyžaduje tři primární přístupy:
- Mark-and-sweep - Během procesu, kdy dojde paměť, vyhledá GC veškerou dostupnou paměť a poté získá dostupnou paměť.
- Počítání referencí - Přidělené objekty obsahují referenční počet referenčních čísel. Pokud je počet paměti nula, je objekt odpadky a je zničen. Uvolněná paměť se vrací do hromady paměti.
- Kolekce kopií - Existují dva oddíly paměti. Je-li první oddíl plný, vyhledá GC všechny dostupné datové struktury a zkopíruje je do druhého oddílu, zhutní paměť po procesu GC a umožní nepřetržitou volnou paměť.
Některé programovací jazyky a platformy s vestavěným GC (např. Java, Lisp, C # a .Net) samospouštějí úniky paměti, což umožňuje efektivnější programování.
Techopedia vysvětluje Garbage Collection (GC)
Dynamický přístup kolekce garbage k automatickému přidělování haldy řeší běžné a nákladné chyby, které často vedou k vadám programu ve skutečném světě, když nejsou detekovány.
Protože je obtížné je identifikovat a opravit, chyby při přidělování jsou nákladné. Sběr odpadu je tedy mnohými považován za nezbytnou jazykovou funkci, která usnadňuje práci programátora díky nižší správě přidělování haldy. GC však není dokonalý a je třeba zvážit následující nevýhody:
- Při uvolňování paměti spotřebovává GC výpočetní prostředky.
- Proces GC je nepředvídatelný, což má za následek rozptýlené zpoždění relace.
- Pokud nepoužívané odkazy na objekty nejsou zlikvidovány ručně, způsobí GC logické nevracení paměti.
- GC ne vždy ví, kdy zpracovat v prostředích virtuální paměti moderních stolních počítačů.
- Proces GC špatně interaguje s mezipamětí a systémy virtuální paměti, což má za následek potíže s laděním výkonu.
