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.