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.
Tworzenie raportu dotyczącego harmonogramu alokacji
Aby zacząć korzystać z narzędzi Planowanie alokacji:
- Otwórz panel Pamięć w Narzędziach deweloperskich.
- Włącz profil Przydziały na osi czasu.
- Naciśnij przycisk Start (Rozpocznij), aby rozpocząć nagrywanie.
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:
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.
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.