Sadržaj:
Definicija - Što znači skupljanje smeća (GC)?
Skupljanje smeća (GC) dinamičan je pristup automatskom upravljanju memorijom i raspoređivanju hepa koji obrađuje i identificira mrtve memorijske blokove i preraspodjeljuje pohranu radi ponovne uporabe. Osnovna svrha sakupljanja smeća je smanjenje propuštanja memorije.
Provedba GC-a zahtijeva tri primarna pristupa, kako slijedi:
- Označivanje i uklanjanje - U tijeku kada se memorija potroši, GC locira svu dostupnu memoriju i zatim vraća raspoloživu memoriju.
- Brojanje referenci - Dodijeljeni objekti sadrže referentni broj referentnog broja. Kad je broj memorije jednak nuli, predmet se smeće i uništava. Oslobođena memorija vraća se u hrpu memorija.
- Kopiranje zbirke - Postoje dvije memorijske particije. Ako je prva particija puna, GC pronalazi sve dostupne podatkovne strukture i kopira ih na drugu particiju, kompaktirajući memoriju nakon GC procesa i omogućava kontinuiranu slobodnu memoriju.
Neki programski jezici i platforme s ugrađenim GC-om (npr. Java, Lisp, C # i .Net) samostalno upravljaju propuštanjem memorije, omogućujući učinkovitije programiranje.
Techopedia objašnjava skupljanje smeća (GC)
Dinamičan pristup sakupljanju smeća automatski raspodjelu hrpe rješava uobičajene i skupe pogreške koje često ne prepoznaju nedostatke u stvarnom svijetu.
Budući da ih je teško identificirati i popraviti, pogreške u raspodjeli su skupe. Stoga prikupljanje smeća mnogi smatraju bitnom jezičnom značajkom koja olakšava posao programera uz niže ručno upravljanje raspodjelom hrpe. Međutim, GC nije savršen i treba uzeti u obzir sljedeće nedostatke:
- Kada oslobađa memoriju, GC troši računalne resurse.
- Proces GC-a je nepredvidiv, što rezultira raštrkanim kašnjenjima sesija.
- Kada se neiskorištene reference predmeta ručno ne odlažu, GC uzrokuje istjecanje logičke memorije.
- GC ne zna uvijek kada treba obraditi unutar virtualnih memorijskih okruženja modernih stolnih računala.
- GC proces slabo funkcionira sa sustavom predmemorije i virtualne memorije što rezultira poteškoćama u podešavanju performansi.