Sobes.tech
Junior

Kas ir atkritumu savāktājs (Garbage Collector)?

sobes.tech AI

Atbilde no AI

Automātiska atmiņas pārvaldības sistēma, kas atbrīvo neizmantotos objektus kaudzē.

Darba principi:

  • Objektu sasniedzamības noteikšana: Uzrauga dzīvos (pieejamos) objektus, kas norādīti no saknēm (piemēram, pavedienu steka).
  • Ne pieejamu objektu atbrīvošana: Objekti bez atsaucēm tiek uzskatīti par "atkritumiem" un to atmiņa var tikt atkārtoti izmantota.

Atkritumu savācēju veidi (atkarīgs no valodas/platformas):

  • Mark and Sweep: Atzīmē pieejamos objektus (marķēšana), pēc tam pārlūko kaudzi un atbrīvo neatzīmētos (tīrīšana). Var izraisīt atmiņas fragmentāciju.
  • Copying: Sadala kaudzi divās daļās. Kopē dzīvos objektus uz jauno daļu, pēc tam attīra veco. Novērš fragmentāciju, bet prasa vairāk atmiņas.
  • Gadījuma: Objektus sadala pēc vecuma pa paaudzēm. Biežāk savāc atkritumus "jaunajā" paaudzē, kur lielākā daļa objektu dzīvo īsu laiku.

Priekšrocības:

  • Samazina atmiņas noplūdes iespējamību.
  • Vienkāršo izstrādi (nav nepieciešams skaidri atbrīvot atmiņu).

Trūkumi:

  • Var radīt aizkaves (pauzes) procesa laikā.
  • Savākšanas laiks ir nenoteikts.