Kategoria: C# Dodane przez marcin90

Co to jest Garbage Collector? Opisz zasadę działania.

1 odpowiedź

0 0 Dodane 20-07-2018 przez Pawel

Postawowe założenie:

GC(Garbage Collection) traktuje wszystkie obiekty jak śmieci, chyba, że zaznaczono inaczej. Zakłada, że wszystkie obiekty na stercie są krótkotrwałe. To znaczy szybciej usunie obiekt, który krócej przebywa na stercie niż ten, który znajduje się na niej dłużej.

GC za każdym razem, gdy zostanie uruchomiony sprawdza, które obiekty ze stosu mają powiązanie z polem klasy, zmienną w metodzie lub globalną  zmienną. Po sprawdzeniu całego stosu, wszystkie elementy, które miały jakieś referencje są zbierane razem (bliżej siebie) w pamięci a reszta obiektów jest usuwana z pamięci.

Podczas sprawdzania powiązań między obiektami wszystkie wątki aplikacji są zatrzymywane. Tak aby stan aplikacji się nie zmieniał.

GC uruchamia się przynajmniej w 2 momentach, gdy kończy się pamięć na stercie do umieszczenia kolejnego obiektu lub gdy OS zgłasza mało pamięci.

Dodatkowo GC włączy się wtedy gdy użycie aplikacji będzie małe. Wszystko po to by jak najmniej wpłynąć na szybkość działania aplikacji.



Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.