Jak korzystać z narzędzia do profilowania alokacji

Meggin Kearney
Meggin Kearney

Za pomocą narzędzia do profilowania alokacji znajdź obiekty, które nie są prawidłowo zbierane podczas czyszczenia pamięci, i nadal zachowuj pamięć.

Jak działa to narzędzie

Program do profilowania alokacji łączy szczegółowe informacje o migawce programu profilującego sterty z przyrostowym aktualizowaniem i śledzeniem panelu osi czasu. Podobnie jak w przypadku tych narzędzi przydzielanie sterty obiektów śledzenia obejmuje rozpoczęcie nagrywania, wykonanie sekwencji działań, a następnie zatrzymanie rejestrowania na potrzeby analizy.

Narzędzie okresowo wykonuje zrzuty sterty w trakcie nagrywania (równie co 50 ms!) i tworzy 1 ostateczną migawkę po zakończeniu nagrywania.

Program profilujący alokacji

Włącz profilowanie alokacji

Aby rozpocząć korzystanie z programu profilu alokacji:

  1. Upewnij się, że masz najnowszą wersję Chrome Canary.
  2. Otwórz Narzędzia dla programistów i kliknij ikonę koła zębatego w prawym dolnym rogu.
  3. Teraz otwórz panel programu profilującego. Powinien się tam pojawić profil o nazwie „Zarejestruj przydziały sterty”.

Program do profilowania alokacji sterty rejestru

Odczytywanie profilu alokacji sterty

Profil alokacji sterty pokazuje, gdzie są tworzone obiekty, i określa ścieżkę przechowywania. Na poniższym zrzucie ekranu słupki u góry wskazują, kiedy na stercie znajdują się nowe obiekty.

Wysokość każdego słupka odpowiada rozmiarowi ostatnio przydzielonych obiektów, a kolor słupków wskazuje, czy obiekty te są nadal aktywne w ostatecznej kopii sterty. Niebieskie paski wskazują obiekty, które na końcu osi czasu są nadal aktywne, a szare paski – obiekty, które zostały przydzielone w czasie osi czasu, ale od tego czasu są zbierane:

Zrzut programu profilującego alokacji

Na poniższym zrzucie ekranu działanie zostało wykonane 10 razy. Przykładowy program zapisuje w pamięci podręcznej 5 obiektów, dlatego powinno wyświetlić się ostatnich 5 niebieskich słupków. Niebieski pasek po lewej stronie oznacza jednak potencjalny problem.

Następnie możesz użyć suwaków na osi czasu powyżej, aby powiększyć dany zrzut i wyświetlić obiekty, które zostały ostatnio przydzielone w tym punkcie:

Powiększ zrzut

Kliknięcie konkretnego obiektu na stercie spowoduje wyświetlenie jego drzewa przechowywania w dolnej części zrzutu stosu. Zbadanie ścieżki przechowywania obiektu powinno dostarczyć informacji potrzebnych do zrozumienia, dlaczego obiekt nie został zebrany. Możesz też wprowadzić niezbędne zmiany w kodzie, aby usunąć zbędne odwołanie.

Wyświetl alokację pamięci według funkcji

Możesz też wyświetlić alokację pamięci według funkcji JavaScript. Więcej informacji znajdziesz w artykule Badanie alokacji pamięci według funkcji.