Hogyan valósul meg az automatik szemétgyűjtés a programozási nyelvekben?
sobes.tech MI
Válasz az MI-től
Automatikus szemétgyűjtés (Garbage Collection, GC) — egy memóriakezelő mechanizmus, amely automatikusan felszabadítja a program által már nem használt objektumok által foglalt memóriát.
A GC fő megvalósítási megközelítései:
-
Referencia számlálás (Reference Counting) — minden objektumnak van egy referencia számlálója. Amikor ez nullára csökken, az objektum törlésre kerül. Hátránya — nem működik ciklikus hivatkozások esetén.
-
Jelölés és söprés (Mark-and-Sweep) — a GC először megjelöli az összes elérhető objektumot, majd törli a nem megjelölt objektumokat, azokat szemétként kezelve.
-
Másolás (Copying Collector) — a memória két területre van osztva, az aktív objektumokat egyik területről a másikra másolja, felszabadítva a régi területet.
-
Generációs GC (Generational GC) — az objektumokat életük szerint generációkra osztják, a fiatal generációt gyakrabban tisztítják, ez növeli a hatékonyságot.
Például Androidon a Dalvik/ART generációs GC-t használ, amely háttérben működik, minimalizálva a késéseket és megelőzve a memória szivárgásokat.