Sobes.tech
Junior

Mi az a szemétgyűjtő (Garbage Collector)?

sobes.tech MI

Válasz az MI-től

Automatikus memóriakezelő mechanizmus, amely felszabadítja a nem használt objektumokat a halomban.

Működési elvek:

  • Objektumok elérhetőségének felismerése: Követi az élő (hozzáférhető) objektumokra mutató hivatkozásokat a gyökerektől (például szálak veremétől).
  • Elérhetetlen objektumok felszabadítása: A hivatkozás nélküli objektumokat "szemétnek" tekintik, és memóriájuk újrahasznosítható.

Szemétgyűjtő típusok (nyelv/platform függő):

  • Mark and Sweep: Megjelöli az elérhető objektumokat (jelölés), majd végigmegy a halmon és felszabadítja a nem megjelölt objektumokat (tiszítás). Memória fragmentációt okozhat.
  • Copying: Két részre osztja a halmot. Másolja az élő objektumokat az új részbe, majd tisztítja a régit. Megelőzi a fragmentációt, de több memóriát igényel.
  • Generációs: Az objektumokat életkor szerint generációkra osztja. Gyakrabban gyűjti a szemét a "fiatal" generációban, ahol a legtöbb objektum rövid életű.

Előnyök:

  • Csökkenti a memória szivárgásának valószínűségét.
  • Egyszerűsíti a fejlesztést (nem kell explicit módon felszabadítani a memóriát).

Hátrányok:

  • Késleltetéseket (szüneteket) okozhat a gyűjtés során.
  • A gyűjtési idő előre nem látható.