Auf dem Tab Top-down wird eine Liste von Aufrufen angezeigt. Wenn Sie einen Methoden- oder Funktionsknoten maximieren, werden die aufgerufenen Elemente angezeigt. Abbildung 2 zeigt ein Top-down-Diagramm für das folgende Anrufdiagramm. Jeder Pfeil im Diagramm verweist von einem Aufrufer auf einen Aufgerufenen.
Abbildung 1: Beispiel für ein Anrufdiagramm, das die Zeit für die Methode D für sich selbst, untergeordnete Elemente und insgesamt veranschaulicht.
Wie in Abbildung 2 dargestellt, werden beim Maximieren des Knotens für Methode A auf dem Tab Top-down die aufgerufenen Methoden B und D angezeigt. Wenn Sie den Knoten für Methode D maximieren, werden die aufgerufenen Methoden wie B und C angezeigt. Ähnlich wie beim Tab Flame-Chart werden im Top-down-Baum Trace-Informationen für identische Methoden mit demselben Aufrufstack zusammengefasst. Der Tab Flame-Diagramm bietet also eine grafische Darstellung des Tabs Top-down.
Auf dem Tab Top-down finden Sie die folgenden Informationen, die die für jeden Aufruf aufgewendete CPU-Zeit beschreiben. Die Zeiten werden auch als Prozentsatz der Gesamtzeit des Threads im ausgewählten Zeitraum dargestellt:
- Selbst:Die Zeit, die die Methode oder der Funktionsaufruf für die Ausführung des eigenen Codes aufgewendet hat und nicht für die Ausführung des Codes der aufgerufenen Funktionen, wie in Abbildung 1 für Methode D dargestellt.
- Untergeordnete Elemente:Die Zeit, die der Methoden- oder Funktionsaufruf mit der Ausführung seiner aufgerufenen Elemente und nicht mit der Ausführung seines eigenen Codes verbracht hat, wie in Abbildung 1 für Methode D dargestellt.
- Gesamt:Die Summe der Eigenzeit und der Untergeordneten Zeit der Methode. Dies entspricht der Gesamtzeit, die die App für die Ausführung eines Aufrufs benötigt hat, wie in Abbildung 1 für Methode D dargestellt.

Abbildung 2: Ein Baumdiagramm von oben nach unten.

Abbildung 3: Ein Bottom-up-Baum für Methode C aus Abbildung 5.
Auf dem Tab Bottom-up wird eine Liste von Aufrufen angezeigt. Wenn Sie den Knoten einer Funktion oder Methode maximieren, werden die Aufrufer angezeigt. Abbildung 3 zeigt einen Bottom-up-Baum für Methode C anhand des Beispiel-Traces in Abbildung 2. Wenn Sie den Knoten für Methode C im Bottom-up-Baum öffnen, werden die beiden eindeutigen Aufrufer (Methoden B und D) angezeigt. Obwohl B C zweimal aufruft, wird B beim Maximieren des Knotens für Methode C im Bottom-up-Baum nur einmal angezeigt. Wenn Sie den Knoten für B maximieren, werden die Aufrufer von B angezeigt, also die Methoden A und D.
Auf dem Tab Bottom-up können Sie Methoden oder Funktionen nach dem CPU-Zeitverbrauch sortieren. Sie können jeden Knoten untersuchen, um festzustellen, welche Aufrufer die meiste CPU-Zeit für den Aufruf dieser Methoden oder Funktionen aufwenden. Im Vergleich zum Top-down-Baum beziehen sich die Zeitinformationen für jede Methode oder Funktion in einem Bottom-up-Baum auf die Methode am oberen Rand des jeweiligen Baums (oberster Knoten). Die CPU-Zeit wird auch als Prozentsatz der Gesamtzeit des Threads während der Aufzeichnung dargestellt. Die folgende Tabelle enthält Informationen zur Interpretation der Zeitinformationen für den obersten Knoten und seine Aufrufer (Unterknoten).
dir selbst | Kinder | Gesamt | |
---|---|---|---|
Methode oder Funktion am Anfang des Bottom-up-Baums (oberster Knoten) | Gibt die Gesamtzeit an, die für die Ausführung des eigenen Codes der Methode oder Funktion aufgewendet wurde, nicht für den Code der aufgerufenen Funktionen. Im Vergleich zum Top-down-Baum stellt diese Zeitinformation eine Summe aller Aufrufe dieser Methode oder Funktion während der Aufzeichnung dar. | Stellt die Gesamtzeit dar, die die Methode oder Funktion mit der Ausführung ihrer aufgerufenen Funktionen und nicht mit der Ausführung ihres eigenen Codes verbracht hat. Im Vergleich zum Top-down-Baum stellt diese Zeitinformation die Summe aller Aufrufe der aufgerufenen Methoden oder Funktionen dieser Methode oder Funktion während der Aufzeichnung dar. | Die Summe aus der eigenen Zeit und der Zeit der untergeordneten Elemente. |
Anrufer (Unterknoten) | Gibt die gesamte Eigenzeit des Empfängers an, wenn er vom Anrufer angerufen wird. Wenn wir den Bottom-up-Baum in Abbildung 6 als Beispiel verwenden, entspricht die Eigenszeit für Methode B der Summe der Eigenszeiten für jede Ausführung von Methode C, wenn sie von B aufgerufen wird. | Stellt die gesamte Kinderzeit des aufgerufenen Elements dar, wenn es vom Aufrufer aufgerufen wird. Wenn wir den Bottom-up-Baum in Abbildung 6 als Beispiel verwenden, entspricht die untergeordnete Zeit für Methode B der Summe der untergeordneten Zeiten für jede Ausführung von Methode C, wenn sie von B aufgerufen wird. | Die Summe aus der eigenen Zeit und der Zeit der untergeordneten Elemente. |
Hinweis:Für eine bestimmte Aufzeichnung werden in Android Studio keine neuen Daten mehr erfasst, wenn das Dateigrößenlimit des Profilers erreicht ist. Die Aufzeichnung wird dadurch jedoch nicht beendet. Das geht in der Regel viel schneller, wenn instrumentierte Traces verwendet werden, da bei dieser Art von Tracing im Vergleich zu einem Stichproben-Trace mehr Daten in kürzerer Zeit erfasst werden. Wenn Sie den Prüfzeitraum auf einen Zeitraum der Aufzeichnung ausdehnen, der nach Erreichen des Limits stattgefunden hat, ändern sich die Zeitmessungsdaten im Bereich „Trace“ nicht, da keine neuen Daten verfügbar sind. Außerdem wird im Bereich „Trace“ NaN für Zeitinformationen angezeigt, wenn Sie nur den Teil einer Aufzeichnung auswählen, für den keine Daten verfügbar sind.