Leistungsbewertung und Profiling

Wie ist ein Flame Graph zur Darstellung von Profilergebnissen zu lesen?

  1. ADie Farbe jeder Funktion gibt deren Wichtigkeit an
  2. BAufrufketten sind vertikal gestapelt, und die horizontale Breite jeder Funktion gibt den Zeitanteil dieser Funktion (und ihrer Aufrufe) an
  3. CDie horizontale Achse gibt das Datum der Programmausführung an
Antwort und Erläuterung anzeigen

Antwort: B. Aufrufketten sind vertikal gestapelt, und die horizontale Breite jeder Funktion gibt den Zeitanteil dieser Funktion (und ihrer Aufrufe) an

In einem Flame Graph werden unten die Aufrufer und oben die aufgerufenen Funktionen gestapelt und mit einer Breite proportional zur beim Sampling aufgezeichneten Anzahl gezeichnet. Je breiter ein Kasten, desto mehr Zeit wird beansprucht. Ein breiter Kasten ohne etwas darüber zeigt, dass die Funktion selbst Zeit beansprucht; liegen weitere Funktionen darüber, wird Zeit in den Aufgerufenen verbracht. Man erkennt auf einen Blick, welcher Aufrufpfad schwer ist.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Was ist ein Beispiel für Größen, die mit den in die CPU integrierten Leistungszählern (PMU) gezählt werden können?
  2. Die Messung mit Leistungszählern ergab für ein Programm ein sehr niedriges IPC (Befehle pro Zyklus) von 0,3 und viele Fehlzugriffe im letzten Cache-Level. Welche Kombination aus wahrscheinlichster Situation und Gegenmaßnahme ist richtig?
  3. Mit Leistungszählern wurde festgestellt, dass sehr viele Verzweigungen falsch vorhergesagt werden. Welche Verbesserungsmethode trifft zu?
  4. Welche Hauptkategorien teilen bei der Top-down-Analyse (Top-down Microarchitecture Analysis) mit Leistungszählern die Nutzung der Befehlsverarbeitungs-Slots der CPU ein?
  5. Das Programm ist langsam, doch die CPU-Auslastung war mit etwa 20 % niedrig. Was ist die wahrscheinlichste Ursache?