Zarządzanie pamięcią - Kolekcja śmieci w JavaScript

Zarządzanie pamięcią - Kolekcja śmieci w JavaScript
JavaScript nie dostarcza zbyt wiele w zarządzaniu pamięcią ani zbiórki śmieci, ponieważ nie możemy bezpośrednio korzystać z operacji związanych z pamięcią, ale do celów wiedzy dobrze jest wiedzieć, jak działa.

W języku C programiści ręcznie alokują lub rozwodzą pamięć z metodami Malloc (), calloc (), realLoc () i free ().

Wartości JavaScript działają, gdy wartości są przydzielane po utworzeniu obiektów lub ciągów; i są automatycznie uwolnione po zakończeniu procesu, więc cały ten proces jest znany jako kolekcja śmieci. Cykl życia zarządzania pamięcią jest oparty na 3 krokach.

  1. Alokacja pamięci
  2. Wykorzystanie pamięci
  3. Uwalnianie pamięci

Przydział pamięci w JavaScript

Po wprowadzeniu zmiennej JavaScript przydziela pamięć dla przypisanych zmiennych. W momencie, gdy pamięć nie jest już przydatna, pamięć zostanie zwolniona. Po wydaniu pamięci, pojawia się kilka problemów, w tym wyciek pamięci. Najtrudniejszym zadaniem jest odkrycie pamięci, która nie jest przydatna, a następnie skutecznie rozlega pamięć za pomocą zbierającego śmieci. Garbage Collector śledzi pamięć, która nie jest wymagana, ale najtrudniejszym zadaniem jest śledzenie nieużywanej pamięci.

Jeśli zadeklarujesz wartości zmiennym, przydział pamięci w JavaScript jest przypisywany automatycznie.

W tych przykładach pamięć przydzielona zmienna1 dla liczby, podczas gdy ciąg jest przydzielany w pamięci zmiennej 2, jak pokazano poniżej.

var zmienna1 = 100;
var varible2 = "alokacja pamięci";

Jeśli chcesz przypisać pamięć dla wielu obiektów, użyj następującego kodu.

var varible3 =
Zmienna 4: 5,
Zmienna5: „Test”

Tablica przydzielona w pamięci zmiennej6, jak pokazano poniżej.

var zmienna6 = [1,2,3,4,5]

Możesz także przydzielić pamięć dla różnych metod. Oto kod do alokacji pamięci dla metody.

Funkcja_name_name (x)
powrót x + 20;

Śmieciarz

Proces przypisywania pamięci i uwalniania pamięci, gdy nie jest to wymagane, jest znany jako kolekcja śmieci. Algorytmy są używane do ustalenia, która pamięć jest nieistotna dla zadań. W tej sekcji wyraźnie dotyczy głównych algorytmów używanych w zbieraniu śmieci i ich ograniczenia.

Algorytm zbioru śmieci

Liczenie algorytmów pobierania śmieci są postrzegane jako wielki fundamentalna kolekcja śmieci. Ten algorytm nie tylko decyduje, czy jakikolwiek zasób jest znaczący, czy nie, ale także filtruje pamięć, aby zdecydować, czy element ma inne instancje, które odnoszą się do tego. Instancja, która ma odniesienia zerowe, jest rozliczane jako śmieci.

Algorytm Mark & ​​Sweep

Kolekcjoner śmieci pomaga zwolnić pamięć, gdy instancja jest niedostępna, zamiast zero odnoszącego się do obiektu. Początkowo Garbage Collector przeszukuje wszystkie instancje globalne lub główne wraz z odniesieniami do obiektów. Dzięki temu algorytmowi kolekcjoner rozróżni instancje osiągalne i niedostępne. Następnie niedostępne wystąpienia zostaną automatycznie gromadzone przez Garbage Collector.

Wniosek

JavaScript skutecznie przydzielają pamięć, a następnie kolektor śmieci pomaga wykryć tę przydzieloną pamięć i odzyskać ją, gdy pamięć nie jest przydatna. W tym artykule dowiedzieliśmy się, w jaki sposób możemy zarządzać pamięcią i zbierać śmieci w JavaScript. Musimy uważać, abyśmy musieli wdrożyć programy, które nie mogą powodować okrągłego odnoszącego się do zmiennych. Musimy upewnić się, że nie możemy zaprogramować niczego, co wyrzuci zmienne z cyklu śmieci.