Windows Dev Center

Analysieren von Leistungsdaten für Visual C++-, Visual C#- und Visual Basic-Code in Windows Store-Apps

In diesem Thema werden die Leistungsdaten für Visual C++-, Visual C#- und Visual Basic-Code beschrieben, die in den Berichtsansichten des Microsoft Visual Studio Express 2012 für Windows 8-Profilerstellungstools angezeigt werden. Informationen zum Erfassen der Visual C++-, Visual C#- und Visual Basic-Leistungsdaten finden Sie einem der folgenden Themen:

Wenn Sie eine Profilerstellung in der Visual Studio-IDE beenden, werden die Leistungsdaten automatisch in einem Dokument angezeigt.

Führen Sie folgende Schritte durch, um eine Profilerstellungsberichtsdatei (.vspx) zu öffnen, die mit dem VSPerf-Befehlszeilentool generiert oder nach einer vorherigen Profilerstellung gespeichert wurde:

  1. Öffnen Sie ggf. Visual Studio.

  2. Klicken Sie im Menü Datei auf Datei öffnen.

  3. Navigieren Sie im Dialogfeld Datei öffnen zu dem Ordner mit der Profilerstellungsberichtsdatei, und wählen Sie diese aus.

Der Visual Studio Express 2012 für Windows 8-Profiler verwendet eine Samplingtechnik, um Leistungsdaten für Visual C++, Visual C# und Visual Basic zu erfassen. In einem auf der Prozessoruhr beruhenden Intervall erfasst der Profiler eine Momentaufnahme der momentan aktiven Funktionen – die Aufrufliste. Eine aktive Funktion in der Aufrufliste führt entweder eigenen Code aus oder wartet auf die Ausführung der von ihr aufgerufenen Funktionen. Der Profiler weist den einzelnen Funktionen in der erfassten Aufrufliste Samplingwerte wie folgt zu:

  • Wenn die Funktion Code des eigenen Texts (und nicht des Texts einer untergeordneten Funktion) ausführt, werden die Samplingzähler Inklusiv und Exklusiv der Funktion erhöht.

  • Wenn die Funktion auf die Rückgabe einer untergeordneten Funktion wartet, wird nur der Samplingzähler Inklusiv erhöht.

Die Profilerstellungsdaten für eine Funktion enthalten die absolute Anzahl der für die Funktion erfassten Samplings und den relativen Prozentsatz dieser Samplings im Vergleich zur Gesamtzahl der Samplings, die bei der Profilerstellung erfasst wurden. Die Daten werden für zwei Sätze an Werten für die zeitliche Steuerung berechnet:

  • Die Inklusiv-Werte werden anhand der Gesamtzahl der für eine Funktion in der Aufrufliste erfassten Samplings berechnet. Dies gilt auch für die beim Ausführen untergeordneter Funktionen erfassten Samplings. Wenn eine erfasste Aufrufliste analysiert wird, werden die Werte für die inklusiven Samplings aller Funktionen der Aufrufliste erhöht.

  • Die Exklusiv-Werte werden anhand der Gesamtzahl an der für eine Funktion erfassten Samplings berechnet, wenn diese ihren eigenen Code ausführt. Exklusive Werte enthalten kein Samplings, die beim Ausführen untergeordneter Funktionen erfasst werden. Wenn eine erfasste Aufrufliste analysiert wird, wird die exklusive Samplinganzahl nur für die Funktion erhöht, die Code ihres Funktionstexts ausführt.

In Profilerstellungsberichtansichten werden Daten auf zwei Arten angezeigt:

  • In Aufrufdiagrammansichten werden Informationen zu Funktionen im Kontext der Ausführungspfade angezeigt.

    • Die Struktur Langsamster Pfad im Zusammenfassungsfenster zeigt den Ausführungspfad mit der größten Anzahl an Samplings an, für die bei der Profilerstellungsausführung die meiste Zeit erforderlich war.

    • Die Aufrufstrukturansicht ist ein Aufrufdiagramm für alle Ausführungspfade, die bei der Profilerstellung geprüft wurden.

    • In den Funktionsdetail- und Aufrufer-/Aufgerufener-Ansichten werden jeweils eine ausgewählte Funktion, die Funktionen, die die diese aufgerufen haben und die von dieser aufgerufenen Funktionen angezeigt.

    Mithilfe von Aufrufdiagrammansichten können Sie Leistungsprobleme Ihrer Algorithmen finden.

  • In Funktionslistenansichten werden Datenleistungsdaten für Funktionen in Tabellenform angezeigt. Sie können die Funktionen sortieren, indem Sie eine Datenspalte auswählen.

    • Die Liste Funktionen mit den meisten einzelnen Aufgaben auf der Zusammenfassungsseite enthält die Funktionen mit der größten Anzahl an exklusiven Samplings, die bei der Profilerstellungsausführung erfasst wurden.

    • In der Modulansicht werden die Funktionen anhand der DLL- oder EXE-Dateien gruppiert, in denen diese enthalten sind.

    • Die Funktionsansicht ist eine einzelne Liste von Funktionen.

    • In der Zeilenansicht werden Leistungsdaten für die Funktionsanweisungen angezeigt, die beim Erfassen eines Samplings ausgeführt wurden.

Sie können zwischen Ansichten navigieren, indem Sie eine Funktion und anschließend in der Dropdownliste Aktuelle Ansicht eine neue Ansicht auswählen.

In der Standardeinstellung verwendet der Profiler beim Erstellen von Berichten die Funktion Nur mein Code. Wenn der Profiler Aufruflisteninformationen analysiert, wird ermittelt, ob eine Funktion in der Aufrufliste Member Ihres Codes oder des Systemcodes ist, z. B. für eine Methode in der .NET-Basisklassen-Bibliothek. Wenn Nur mein Code aktiviert ist, und es sich bei der Funktion um einen Aufruf an den Systemcode handelt, werden bei der Profileranalyse den exklusiven und inklusiven Werten des ersten Systemaufrufs alle folgenden Samplings hinzugefügt, die für die Aufrufliste erfasst werden. Daher wird für Systemaufrufe ein Rollup in den ersten Systemaufruf durchgeführt, sodass Sie sich auf das Optimieren Ihres eigenen Codes konzentrieren können.

Führen Sie folgende Schritte durch, um das Standardverhalten für "Nur mein Code" zu ändern und alle Aufrufe an Systemaufrufe anzuzeigen:

  1. Wählen Sie im Menü Extras den Befehl Optionen aus.

  2. Wählen Sie im Dialogfeld Optionen die Option Leistungstools und dann Allgemein aus.

  3. Deaktivieren Sie in der Gruppe Nur mein Code das Kontrollkästchen "Nur eigenen Code" für Berichterstellung für den Profiler aktivieren (Sampling).

Hh780914.collapse_all(de-de,VS.140).gifZusammenfassungsansicht

Die Zusammenfassungsseite verfügt über zwei Ansichten der Profilerstellungsdaten, in denen Sie häufig die besten Kandidaten für die Leistungsoptimierung finden können.

  • In der Struktur Langsamster Pfad wird die Aufrufliste mit der größten Anzahl an Samplings bei der Profilerstellungsausführung angezeigt. Wenn Sie erkennen, warum dieser Algorithmus soviel Zeit erfordert, können Sie eine Optimierung erzielen.

  • In der Liste Funktionen mit den meisten einzelnen Aufgaben finden Sie die zehn Funktionen mit der meisten exklusiven Zeit. Sie können schnelle und deutliche Leistungszuwächse erreichen, indem Sie den Funktionscode optimieren oder die Aufrufhäufigkeit der Funktionen verringern.

Um die Ansicht "Funktionsdetails" für die Funktion zu öffnen, wählen Sie in der Zusammenfassungsansicht einen Funktionsnamen aus.

Hh780914.collapse_all(de-de,VS.140).gifFunktionsdetailansicht

Im Balkendiagramm Kostenverteilung werden die Beziehungen zwischen einer von Ihnen ausgewählten Funktion und den aufrufenden Funktionen dargestellt, die die ausgewählte Funktion ausgeführt haben. Zudem wird die Beziehung zwischen der ausgewählten Funktion und den von dieser aufgerufenen Funktionen angezeigt.

  • In der Leiste "Aufrufende Funktionen" werden die Funktionen angezeigt, die die ausgewählte Funktion aufgerufen haben. Die Größe eines Blocks der aufrufenden Funktion gibt den Prozentsatz der Gesamtausführungszeit der ausgewählten Funktion an, die von der aufrufenden Funktion verursacht wurde.

  • In der Leiste Ausgewählte Funktion wird die relative Menge der Gesamtausführungszeit angegeben, die von der ausgewählten Funktion beim Ausführen des eigenen Codes (der Funktionsrumpf-Block) benötigt wurde. Zudem wird die zum Ausführen der von der ausgewählten Funktion aufgerufenen Funktionen erforderliche Zeit angezeigt.

  • In der Leiste Aufgerufene Funktionen werden die Funktionen angezeigt, die von der ausgewählten Funktion aufgerufen wurden. Die Größe eines Blocks der aufgerufenen Funktion gibt den Prozentsatz der Gesamtausführungszeit für die aufgerufenen Funktion an, der von der aufgerufenen Funktion aufgewendet wurde.

Sie können eine aufrufende oder eine aufgerufene Funktion auswählen, um diese als ausgewählte Funktion zu verwenden.

Hh780914.collapse_all(de-de,VS.140).gifAufrufstrukturansicht

In der Aufrufstrukturansicht können Sie die Funktionsausführungspfade prüfen, die in Ihrer Anwendung durchlaufen wurden. Der Stamm der Struktur ist der Einstiegspunkt in die Anwendung. Unter den einzelnen Funktionsknoten werden alle Funktionen aufgeführt, die von dieser aufgerufen wurden. Zudem werden Leistungsdaten über diese Funktionsaufrufe angezeigt. Die Funktionswerte in der Aufrufstrukturansicht beziehen sich auf die Funktionsinstanzen, die von der übergeordneten Funktion in der Aufrufstruktur aufgerufen wurden. Bei den Prozentwerte handelt es sich um das Verhältnis der Zeit des Funktionsinstanzwerts zur Gesamtausführungszeit der Profilerstellung.

Um sich auf einen Knoten der Aufrufstrukturansicht zu konzentrieren, wählen Sie den Knoten und anschließend im Kontextmenü Stamm festlegen aus. Durch das Festlegen eines Stammknotens wird sichergestellt, dass in der Ansicht lediglich die Teilstruktur des ausgewählten Knotens angezeigt wird. Um den Stammknoten wieder auf den ursprünglichen Knoten zurückzusetzen, wählen Sie im Kontextmenü Stamm zurücksetzen aus.

Spalten der Aufrufstrukturansicht

Spaltenname

Beschreibung

Inklusive Samplings

Die Anzahl der Samplings, die für die Instanzen dieser Funktion erfasst wurden, die von der in der Aufrufstruktur übergeordneten Funktion aufgerufen wurden. Die Anzahl der Samplings umfasst Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Exklusive Samplings

Die Anzahl der Samplings, die für die Instanzen dieser Funktion erfasst wurden, die von der in der Aufrufstruktur übergeordneten Funktion aufgerufen wurden. Die Anzahl der Samplings umfasst keine Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Inklusive Samplings in %

Der Prozentsatz der Gesamtanzahl an Samplings, der bei der Profilerstellungsausführung und für die Instanzen der Funktion erfasst wurden, die von der übergeordneten Funktion aufgerufen wurden. Der Wert umfasst Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Exklusive Samplings in %

Der Prozentsatz der Gesamtanzahl an Samplings, der bei der Profilerstellungsausführung und für die Instanzen der Funktion erfasst wurden, die von der übergeordneten Funktion aufgerufen wurden. Der Wert umfasst keine Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Modulname

Der Name des Moduls (DLL oder EXE), das die Funktion enthält.

Hh780914.collapse_all(de-de,VS.140).gifAufrufer-/Aufgerufener-Ansicht

Die Aufrufer-/Aufgerufener-Ansicht ist eine strukturierte Darstellung der Daten im Balkendiagramm für die Funktionsdetail-Kostenaufteilung, die alle Details der zeitlichen Steuerung enthält. In der Aufrufer-/Aufgerufener-Ansicht können Sie die Beziehung zwischen einer ausgewählten Funktion und den Funktionen untersuchen, die diese aufgerufen haben oder von dieser aufgerufen wurden. Die Aufrufer-/Aufgerufener-Ansicht besteht aus drei Rastern.

Die im mittleren Raster angezeigte Aktuelle Funktion enthält Profilerstellungsinformationen für die ausgewählten Funktion. Die Werte umfassen Samplings für alle Funktionsaufrufe. Die Funktionen, die die aktuelle Funktion aufgerufen haben werden im oberen und die Funktionen, die von der aktuellen Funktion aufgerufen wurden im unteren Raster angezeigt. Die Werte der aktuellen Funktion sind die Summe aller erfassten Aufrufe an die Funktion. Die Werte der aufrufenden und aufgerufenen Funktionen enthalten nur die Samplings, die für die Funktion zu einem Zeitpunkt erfasst wurden, als diese aufgerufen hat oder von der ausgewählten Funktion aufgerufen wurde.

Um in den Aufrufstrukturen einer Funktion zu navigieren, doppelklicken Sie auf einen Aufruf oder eine aufgerufene Funktion. Dadurch wird die ausgewählte Funktion zur neuen ausgewählten Funktion und mit den Aufrufern und aufgerufenen Funktionen angezeigt.

Spalten der Ansicht Aufrufer-/Aufgerufener-Ansicht

Spaltenname

Beschreibung

Inklusive Samplings

  • Die Gesamtzahl der für die ausgewählte Funktion erfassten Samplings, die für die ausgewählte Funktion erfasst wurden. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden.

  • Für eine aufrufende Funktion die Anzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufrufenden Funktion erfasst wurden, die die ausgewählte Funktion aufgerufen haben. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der aufrufenden Funktion aufgerufen wurden.

  • Für eine aufgerufene Funktion die Anzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufgerufenen Funktion erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der aufgerufenen Funktion aufgerufen wurden.

Exklusive Samplings

  • Die Gesamtzahl der für die ausgewählte Funktion erfassten Samplings, die für die ausgewählte Funktion erfasst wurden. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden.

  • Für eine aufrufende Funktion die Anzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufrufenden Funktion erfasst wurden, die die ausgewählte Funktion aufgerufen haben. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der aufrufenden Funktion aufgerufen wurden.

  • Für eine aufgerufene Funktion die Anzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufgerufenen Funktion erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der aufgerufenen Funktion aufgerufen wurden.

Inklusive Samplings in %

  • Für die ausgewählte Funktion der Prozentsatz der Gesamtanzahl der bei der Profilerstellungsausführung erfassten Samplings, die für die ausgewählte Funktion erfasst wurden. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden.

  • Für eine aufrufende Funktion der Prozentsatz der Gesamtzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufrufenden Funktion erfasst wurden, die die ausgewählte Funktion aufgerufen haben. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der aufrufenden Funktion aufgerufen wurden.

  • Für eine aufgerufene Funktion der Prozentsatz der Gesamtzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufgerufenen Funktion erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden. Der Wert umfasst Samplings, die für Funktionen erfasst wurden, die von der aufgerufenen Funktion aufgerufen wurden.

Exklusive Samplings in %

  • Für die ausgewählte Funktion der Prozentsatz der Gesamtanzahl der bei der Profilerstellungsausführung erfassten Samplings, die für die ausgewählte Funktion erfasst wurden. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden.

  • Für eine aufrufende Funktion der Prozentsatz der Gesamtzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufrufenden Funktion erfasst wurden, die die ausgewählte Funktion aufgerufen haben. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der aufrufenden Funktion aufgerufen wurden.

  • Für eine aufgerufene Funktion der Prozentsatz der Gesamtzahl der bei der Profilerstellungsausführung erfassten Samplings, die für Instanzen der aufgerufenen Funktion erfasst wurden, die von der ausgewählten Funktion aufgerufen wurden. Der Wert umfasst keine Samplings, die für Funktionen erfasst wurden, die von der aufgerufenen Funktion aufgerufen wurden.

Hh780914.collapse_all(de-de,VS.140).gifModul- und Funktionsansichten

Die Modul- und Funktionsansichten enthalten die Details der Profilerstellungsdaten für die Funktionen im Profilerstellungsbericht. In der Modulansicht werden die JavaScript-Funktionen mithilfe der JS-Quelldatei organisiert, in der diese enthalten sind. Andere Funktionen werden für das Modul aufgeführt, z. B. eine DLL-Datei. In der Funktionsansicht werden alle Funktionen ohne Hierarchie aufgeführt. Es ist häufiger einfacher, eigenen Code in der Modulansicht zu finden, als in der Funktionsansicht. Da Vergleichen von Funktionen ist jedoch in der Funktionsansicht einfacher.

Spalten der Modul- und Funktionsansichten

Spaltenname

Beschreibung

Inklusive Samplings

Die Anzahl der Samplings, die erfasst wurden, als sich die Funktion in der Aufrufliste befand. Die Anzahl der Samplings umfasst Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Exklusive Samplings

Die Anzahl der Samplings, die während der Ausführung des eigenen Codes erfasst wurden. Exklusive Samplings enthalten keine Samplings, die während der Ausführung von Funktionen erfasst wurden, die von der Funktion aufgerufen wurden.

Inklusive Samplings in %

Der Prozentsatz der Gesamtzahl der Samplings, die bei der Profilerstellungsausführung erfasst wurden, während sich die Funktion in der Aufrufliste befand.

Der Zähler gilt für Inklusive Samplings der Funktion.

Der Nenner ist die Gesamtzahl von Samplings, die für die Profilerstellung erfasst wurden.

Exklusive Samplings in %

Der Prozentsatz der Gesamtzahl der Samplings, die bei der Profilerstellungsausführung für die Funktion erfasst wurden. Der Wert umfasst keine Samplings, die für die von der Funktion aufgerufenen Funktionen erfasst wurden.

Hh780914.collapse_all(de-de,VS.140).gifZeilenansicht

In der Zeilenansicht der Samplingdaten werden die Leistungsdaten für die Anweisungen aufgeführt, die ausgeführt wurden, als die Samplings bei der Profilerstellung erfasst wurden. In einer Quelldatei kann eine Anweisung mehrere Zeilen umfassen, und eine einzelne Zeile kann mehr als eine Anweisung enthalten.

Spaltenname

Beschreibung

Inklusive Samplings

Die Anzahl von Samplings, die für die Zeile bei der Profilerstellungsausführung erfasst wurden. Die Anzahl der Samplings umfasst Samplings, die für die von der Zeile aufgerufenen Funktionen erfasst wurden.

Exklusive Samplings

Die Anzahl von Samplings, die für die Zeile bei der Profilerstellungsausführung erfasst wurden. Die Anzahl der Samplings umfasst keine Samplings, die für die von der Zeile aufgerufenen Funktionen erfasst wurden.

Inklusive Samplings in %

Der Prozentsatz der Gesamtzahl der Samplings, die bei der Profilerstellungsausführung für die Zeile erfasst wurden. Der Wert umfasst Samplings, die für die von der Zeile aufgerufenen Funktionen erfasst wurden.

Exklusive Samplings in %

Der Prozentsatz der Gesamtzahl der Samplings, die bei der Profilerstellungsausführung für die Zeile erfasst wurden. Der Wert umfasst keine Samplings, die für die von der Zeile aufgerufenen Funktionen erfasst wurden.

Quellanfangszeile

Die Nummer der Anfangszeile in der Quelldatei, an der dieses Sampling erfasst wurde.

Quellanfangszeichen

Der Offset des Startzeichens in der Quelldateizeile, an dem dieses Sampling erfasst wurde.

Quellendzeile

Die Endzeilennummer der Quelldatei, an der dieses Sampling erfasst wurde.

Quellendzeichen

Der Offset des Endzeichens der Quelldateizeile, an dem dieses Sampling erfasst wurde.

Sie können Datenspalten hinzufügen oder entfernen und die Reihenfolge ändern, in der die Spalten angezeigt werden. Öffnen Sie das Kontextmenü für eine Tabellenheaderzeile, und wählen Sie Spalten hinzufügen/entfernen aus. Aktivieren Sie die Kontrollkästchen der Spalten, die Sie anzeigen möchten, und deaktivieren Sie die Kontrollkästchen der Spalten, die ausgeblendet werden sollen. Verschieben Sie ausgewählte Spalten mit den Pfeilschaltflächen.

Zusätzliche Profilerstellungsdatenspalten

Spaltenname

Beschreibung

Funktionsadresse

Die Speicheradresse der Funktion.

Funktionszeilennummer

Die Zeilennummer des Anfangs dieser Funktion in der Quelldatei.

Quelldatei

Die Quelldatei, die die Definition der Funktion enthält.

Modulname

Der Name des Moduls, das die Funktion enthält.

Modulpfad

Der Pfad des Moduls, das die Funktion enthält.

Prozess-ID

Die Prozess-ID (PID) der Profilerstellung.

Prozessname

Der Prozessname.

Anzeigen:
© 2015 Microsoft