Jak korzystać z tabeli alokacji

Meggin Kearney
Meggin Kearney

Użyj narzędzia Plansza alokacji, aby znaleźć obiekty, które nie są prawidłowo usuwane i nadal zajmują pamięć.

Jak działa to narzędzie

Raport Oś czasu alokacji zawiera szczegółowe informacje o zrzucie z profilowania stosu oraz przyrostowe aktualizowanie i śledzenie z panelu osi czasu. Podobnie jak w przypadku tych narzędzi śledzenie alokacji stosu wymaga rozpoczęcia nagrywania, wykonania sekwencji działań, a następnie zatrzymania nagrywania w celu analizy.

Narzędzie okresowo (co 50 ms!) robi migawki stosu i jedną końcową migawkę na końcu nagrania.

Przykładowy zapis przydziału na osi czasu

Tworzenie raportu dotyczącego harmonogramu alokacji

Aby zacząć korzystać z narzędzi Planowanie alokacji:

  1. Otwórz panel Pamięć w Narzędziach deweloperskich.
  2. Włącz profil Przydziały na osi czasu.
  3. Naciśnij przycisk Start (Rozpocznij), aby rozpocząć nagrywanie.

Wyróżniona opcja „Rekord alokacji na osi czasu”.

Odczytywanie profilu alokacji sterty

Profil alokacji stosu pokazuje, gdzie tworzone są obiekty, i określa ścieżkę przechowywania. Na tym zrzucie ekranu paski u góry wskazują, kiedy w steku znajdują się nowe obiekty.

Wysokość każdego słupka odpowiada rozmiarowi niedawno przydzielonych obiektów, a kolor słupków wskazuje, czy te obiekty są nadal aktywne w końcowym migawkowym obrazie stosu. Niebieskie paski wskazują obiekty, które są nadal aktywne na końcu osi czasu, a szare paski wskazują obiekty, które zostały przydzielone w trakcie osi czasu, ale zostały już usunięte:

Przykład rejestrowania osi czasu alokacji

Możesz powiększyć widok, aby filtrować panel Konstruktor i wyświetlać tylko obiekty przydzielone w określonym przedziale czasu. Aby powiększyć, przeciągnij kursor po osi czasu, aby skupić się na wybranym fragmencie.

Oś czasu powiększona do poziomu pojedynczego słupka.

Kliknięcie konkretnego konstruktora w panelu Konstruktor spowoduje wyświetlenie w panelu Konstruktory drzewa elementów konstrukcyjnych. Przeanalizowanie ścieżki przechowywania obiektu powinno dostarczyć wystarczającej ilości informacji, aby zrozumieć, dlaczego obiekt nie został zebrany. Możesz wprowadzić niezbędne zmiany w kodzie, aby usunąć niepotrzebne odwołanie.

Wyświetlanie alokacji 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.