Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.