Wykresy od góry i od dołu

Karta Od góry do dołu zawiera listę wywołań, w których rozwinięcie węzła metody lub funkcji powoduje wyświetlenie wywoływanych przez niego elementów. Ilustracja 2 przedstawia wykres od góry do dołu dla poniższego wykresu połączeń. Każda strzałka na wykresie wskazuje od rozmówcy do odbiorcy połączenia.

Rysunek 1. Przykładowy wykres wywołań ilustrujący czas spędzony na wykonywaniu metody D, jej wywołań i wywołań jej elementów podrzędnych.

Jak widać na rysunku 2, rozwinięcie węzła metody A na karcie Od góry do dołu powoduje wyświetlenie wywoływanych przez nią metod B i D. Następnie rozwinięcie węzła metody D ujawnia wywoływane przez nią metody, takie jak B i C. Podobnie jak w przypadku karty Wykres płomieniowy, karta „Od góry do dołu” zawiera zagregowane informacje o śladach identycznych metod, które mają ten sam stos wywołań. Oznacza to, że karta Wykres płomieniowy zawiera graficzną reprezentację karty Od góry do dołu.

Karta Od góry do dołu zawiera te informacje, które pomagają opisać czas procesora poświęcony na każde wywołanie (czasy są też przedstawione jako odsetek całkowitego czasu wątku w wybranym zakresie):

  • Samodzielny: czas, jaki metoda lub wywołanie funkcji spędziło na wykonywaniu własnego kodu, a nie kodu wywoływanych przez nie funkcji, jak pokazano na rysunku 1 w przypadku metody D.
  • Dzieci: czas, jaki metoda lub wywołanie funkcji spędziło na wykonywaniu wywoływanych funkcji, a nie własnego kodu, jak pokazano na rysunku 1 w przypadku metody D.
  • Łącznie: suma czasu własnegodzieci. Jest to łączny czas wykonywania połączenia przez aplikację, co ilustruje rysunek 1 w przypadku metody D.

Rysunek 2. Drzewo od góry do dołu.

Rysunek 3. Drzewo od dołu do góry dla metody C z rysunku 5.

Karta Od dołu zawiera listę wywołań, w których rozwinięcie węzła funkcji lub metody powoduje wyświetlenie wywołujących ją funkcji lub metod. Na przykładzie śladu pokazanego na rysunku 2 rysunek 3 przedstawia drzewo od dołu do góry dla metody C. Otwarcie węzła metody C w drzewie od dołu do góry wyświetla każdego z jej unikalnych wywołujących, czyli metody B i D. Uwaga: chociaż B wywołuje C dwukrotnie, B pojawia się tylko raz po rozwinięciu węzła metody C w drzewie od dołu do góry. Po rozwinięciu węzła B wyświetlają się jego wywołujący, czyli metody A i D.

Karta Od dołu przydaje się do sortowania metod lub funkcji według tych, które zużywają najwięcej (lub najmniej) czasu procesora. Możesz sprawdzić każdy węzeł, aby określić, które wywołania zużywają najwięcej czasu procesora na wywoływanie tych metod lub funkcji. W porównaniu z drzewem od góry do dołu informacje o czasie wykonania każdej metody lub funkcji w drzewie od dołu do góry odnoszą się do metody znajdującej się u góry każdego drzewa (węzła głównego). Czas procesora jest też przedstawiany jako procent całkowitego czasu wątku podczas nagrywania. W tabeli poniżej znajdziesz wyjaśnienie, jak interpretować informacje o czasie w przypadku węzła głównego i jego wywołujących (węzłów podrzędnych).

Własnym Dzieci Razem
Metoda lub funkcja u góry drzewa od dołu do góry (węzeł najwyższego poziomu) Reprezentuje łączny czas wykonywania metody lub funkcji, który obejmuje tylko jej własny kod, a nie kod wywoływanych przez nią funkcji. W porównaniu z drzewem od góry do dołu te informacje o czasie trwania stanowią sumę wszystkich wywołań tej metody lub funkcji w okresie nagrywania. Reprezentuje łączny czas wykonywania metody lub funkcji, który obejmuje wywołania innych funkcji, a nie własny kod. W porównaniu z drzewem od góry do dołu te informacje o czasie reprezentują sumę wszystkich wywołań podrzędnych tej metody lub funkcji w okresie nagrywania. Suma czasu spędzonego na tym koncie i na kontach podrzędnych.
Rozmówcy (węzły podrzędne) Reprezentuje całkowity czas własny wywoływanego elementu podczas wywoływania przez element wywołujący. Na przykład w przypadku drzewa od dołu do góry na rysunku 6 czas własny metody B będzie równy sumie czasów własnych każdego wykonania metody C, gdy jest ona wywoływana przez metodę B. Reprezentuje łączny czas podrzędny elementu wywoływanego, gdy jest on wywoływany przez element wywołujący. Na przykład w przypadku drzewa od dołu do góry na rysunku 6 czas podrzędny metody B będzie równy sumie czasów podrzędnych każdego wykonania metody C, gdy jest ona wywoływana przez metodę B. Suma czasu spędzonego na tym koncie i na kontach podrzędnych.

Uwaga: w przypadku danego nagrania Android Studio przestaje zbierać nowe dane, gdy profiler osiągnie limit rozmiaru pliku (nie zatrzymuje to jednak nagrywania). Zwykle dzieje się to znacznie szybciej w przypadku śladów instrumentowanych, ponieważ ten typ śledzenia zbiera więcej danych w krótszym czasie niż ślad próbkowany. Jeśli wydłużysz czas sprawdzania do okresu nagrywania, który nastąpił po osiągnięciu limitu, dane o czasie w panelu śledzenia nie zmienią się (ponieważ nie są dostępne żadne nowe dane). Dodatkowo w panelu śledzenia wyświetla się wartość NaN w przypadku informacji o czasie, gdy wybierzesz tylko tę część nagrania, w której nie ma dostępnych danych.