Sadržaj:
Definicija - Što znači skupljanje smeća?
Skupljač smeća dio je softvera koji vrši automatsko upravljanje memorijom. Njezin je zadatak osloboditi neiskorištenu memoriju i osigurati da se memorija ne oslobodi dok se još uvijek koristi. Neki jezici kao što su Java i .NET jezici imaju automatsko prikupljanje smeća, dok drugi poput C / C ++ zahtijevaju od programera da ručno upravlja memorijom.
Techopedia objašnjava skupljača smeća
Skupljanje smeća prvi je predstavio kreator Lispa John McCarthy kako bi olakšao ručno upravljanje memorijom tijekom rada s jezikom Lisp.
Tri glavne tehnike koje skupljač smeća koristi za automatsko upravljanje memorijom su sljedeće:
- Brojanje referenci - referenca na svaki objekt broji se pomoću brojača brojača. Kad brojač dosegne nulu, označava da objekt više nije potreban i stoga se reciklira.
- Označi i pomesti - na svim podacima područja vrši se rekurzivni presjek svih dostupnih objekata, a označeni su dostižni objekti. Neoznačeni predmeti tada se recikliraju.
- Zaustavljanje i kopiranje - Memorijska hrpa podijeljena je u dva odjeljka: odjeljak koji sadrži objekte i prazan odjeljak u koji se objekti prenose (kopiraju) ako se ustanovi da su označeni. Neoznačeni predmeti u prvom odjeljku recikliraju se praznim punjenjem.
Kad se oslobodi blok memorije dodijeljen pokazivaču / objektu, pokazivač / objekt mora se vratiti na nultu vrijednost; u protivnom, to je visi, tj. ukazuje na nevaljani blok memorije.
Skupljanje smeća pomaže u smanjenju grešaka i sigurnosnih rizika uzrokovanih visećim pokazivačima i problemima s propuštanjem memorije.
Nedostaci korištenja sakupljača smeća uključuju dodatne režijske resurse i performanse. Pokretanje sakupljača smeća također može usporiti sustav i na taj način smanjiti njegove performanse.
