Garbage collection
Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji
Co to jest garbage collection?
Garbage collection (GC), czyli „odśmiecanie pamięci”, to mechanizm automatycznego zarządzania pamięcią. Jego zadaniem jest wykrywanie obiektów, które nie są już używane przez program, i zwalnianie zajmowanej przez nie pamięci.
Dzięki garbage collection programista zwykle nie musi ręcznie usuwać obiektów z pamięci. Mechanizm ten występuje m.in. w językach Java, C#, Python czy JavaScript.
Jak działa garbage collector?
Garbage collector sprawdza, czy do danego obiektu nadal istnieje odwołanie, np. przez zmienną, pole klasy lub element kolekcji. Jeśli obiekt nie jest już osiągalny z kodu programu, może zostać uznany za niepotrzebny i usunięty z pamięci.
Przykład w Javie:
Person p = new Person();
p = null; // obiekt Person nie ma już aktywnego odwołania
Po przypisaniu null obiekt utworzony wcześniej przez new Person() może zostać w przyszłości usunięty przez garbage collector.
Zalety garbage collection
- zmniejsza ryzyko wycieków pamięci,
- ogranicza liczbę błędów związanych z ręcznym zwalnianiem pamięci,
- upraszcza pisanie aplikacji,
- zwiększa bezpieczeństwo działania programu.
Wady garbage collection
- moment zwolnienia pamięci nie zawsze jest przewidywalny,
- uruchomienie GC może chwilowo spowolnić program,
- nie zwalnia programisty z dbania o rozsądne używanie pamięci.
Najważniejsze na egzamin
Garbage collection to automatyczne zwalnianie pamięci zajmowanej przez nieużywane obiekty. Nie jest to sortowanie, kompresja danych ani usuwanie elementów interfejsu użytkownika.