Sobes.tech
Junior

Czym jest zbieracz śmieci (Garbage Collector)?

sobes.tech AI

Odpowiedź od AI

Automatyczny mechanizm zarządzania pamięcią, który zwalnia nieużywane obiekty na stercie.

Zasady działania:

  • Wykrywanie dostępności obiektów: Śledzi obiekty, na które odwołują się żywe (dostępne) obiekty z korzeni (np. stos wątków).
  • Zwalnianie nieosiągalnych obiektów: Obiekty, na które nie ma odwołań, są uważane za "śmieci" i ich pamięć może być ponownie użyta.

Typy zbieraczy śmieci (zależnie od języka/platformy):

  • Mark and Sweep: Oznacza dostępne obiekty (znakowanie), następnie przechodzi przez stertę i zwalnia nieoznaczone (czyszczenie). Może powodować fragmentację pamięci.
  • Copying: Dzieli stertę na dwie części. Kopiuje żywe obiekty do nowej części, następnie czyści starą. Zapobiega fragmentacji, ale wymaga więcej pamięci.
  • Generacyjny: Dzieli obiekty według wieku na pokolenia. Częściej zbiera śmieci w "młodym" pokoleniu, gdzie większość obiektów nie żyje długo.

Zalety:

  • Zmniejsza prawdopodobieństwo wycieków pamięci.
  • Ułatwia rozwój (nie trzeba jawnie zwalniać pamięci).

Wady:

  • Może powodować opóźnienia (pauzy) podczas zbierania.
  • Czas zbierania jest nieprzewidywalny.