Identifizieren von langsamsten Pfaden mit einem Flame-Diagramm (C#, Visual Basic, C++, F#)
Visual Studio-Profilerstellungstools für die CPU-Auslastung und -Instrumentierung umfassen die Flame Graph-Ansicht . Mit dem Flame Graph können Sie heiße Pfade in Ihrem Code identifizieren, indem sie eine Visualisierung der Aufrufstruktur anzeigen. Der heiße Pfad ist der Aufrufstapel für die Funktionen, die die meiste CPU oder die meiste Zeit verwenden, und ist häufig ein guter Ort, um nach potenziellen Leistungsoptimierungen zu suchen. Das Diagramm bietet einen visuellen Überblick darüber, wie die Ausführung der Anwendung verläuft, und Sie können auf bestimmte Knoten klicken, um sie genauer zu untersuchen.
Eine Anleitung zur Verbesserung der Leistung mithilfe des Flame-Diagramms finden Sie unter Fallstudie: Leitfaden für Anfänger zum Optimieren von Code. Informationen zur CPU-Profilerstellung finden Sie unter Analysieren der Leistung mithilfe der CPU-Profilerstellung.
Untersuchen der langsamsten Pfaden
Die Flame Graph-Ansicht befindet sich in der Detailansicht des Diagessionsberichts .
Starten Sie eine Profilerstellungssitzung entweder mit dem Tool "CPU-Auslastung" oder "Instrumentierung".
Nachdem Sie Die Profilerstellungssitzung beendet und der Bericht geladen wurde, wählen Sie "Details öffnen" aus.
Wählen Sie in der Dropdownliste „Aktuelle Ansicht“ die Option Flammendiagramm aus.
Die Ansicht „Flammendiagramm“ wird angezeigt.
Der heiße Pfad ist der Codepfad, der die meiste CPU oder die meiste Zeit verwendet, während Sie durch die Aufrufstruktur nach unten schauen.
Standardmäßig stellen die im Flame Graph angezeigten Daten die gleichen Daten wie in der Anrufstrukturansicht für den Datensammlungszeitraum dar. Insbesondere für die CPU-Auslastung werden die Gesamt CPU-Werte angezeigt. Dieser Wert ist einschließlich, sodass er die CPU-Auslastung (d. h. CPU-Berechnungszeit) umfasst, die von Aufrufen der Funktion verwendet wird, und alle anderen Funktionen, die von der Funktion aufgerufen werden. Auf die gleiche Weise zeigt das Diagramm für die Instrumentierung die Werte an, die der Spalte "Summe " in der Aufrufstrukturansicht entsprechen.
Wenn Sie jedoch einen Knoten auswählen, wird der ausgewählte Knoten zur neuen Basislinie und verwendet 100 % der Flammdiagrammbreite. Auf diese Weise können Sie eine komplexe Anrufstruktur besser visualisieren und lange Namen anzeigen, wenn sie abgeschnitten oder ausgeblendet sind. Hier ist ein Beispiel für ein Flammdiagramm, das eine komplexere Aufrufstruktur zeigt.
Um Details zu einem beliebigen Knoten anzuzeigen, wählen Sie den Knoten aus.
Wählen Sie "Zoom zurücksetzen" aus, um zur Standardansicht zurückzukehren.
Sie können auch zu verschiedenen Ansichten im Profilerstellungsbericht navigieren, indem Sie einen Knoten auswählen und dann eine Option wie " In der Anrufstruktur anzeigen" aus dem Kontextmenü auswählen.
Flammdiagramm kippen
Standardmäßig wird das Flammdiagramm im Tool auf dem Kopf oder als Iciklediagramm angezeigt, bei dem die Y-Achse stapeltiefe von null oben nach unten gezählt wird.
Sie können ein standardmäßiges Flammdiagrammlayout anzeigen, indem Sie auf Flip Flame Graph klicken.
Navigieren im Flame-Diagramm
Bei einem komplexen Flame-Diagramm können Sie die Visualisierung zoomen, indem Sie bestimmte Elemente auswählen.
Sie können in der Flammendiagrammansicht navigieren, indem Sie mit der Maus auf einen Knoten klicken oder die Tastatur verwenden. Darüber hinaus werden die folgenden Tastaturkurzbefehl unterstützt.
Tastenkombinationen | Befehl |
---|---|
Registerkarte | Zu jedem Knoten wechseln |
NACH-OBEN/NACH-UNTEN | Zum übergeordneten oder untergeordneten Knoten wechseln |
Nach-Rechts-Taste/Nach-Links-Taste | Wechseln zum Peer eines Knotens im Stapel |
EINGABETASTE | Vergrößern (Auswählen) |
Escape | Verkleinern |