Analysieren von JavaScript-Funktionstimingdaten in Store-Apps
In diesem Thema werden die Leistungsdaten für JavaScript-Code beschrieben, die in den Berichtsansichten des Tools JavaScript-Funktionstiming im Leistungs- und Diagnosehub dargestellt sind. Informationen zum Erfassen von JavaScript-Funktionstimingdaten finden Sie unter den folgenden Themen:
Sammeln von JavaScript-Funktionstimingdaten in Store-Apps auf einem lokalen Computer
Sammeln von JavaScript-Funktionstimingdaten in Store-Apps auf einem Remotecomputer
In diesem Thema
Öffnen einer Berichtsdatei für Profilerstellung
Typen von Profilerstellungsdaten
Typen von Profilerstellungsberichtsansichten
Profilerstellungsberichtansichten
Zusammenfassungsansicht
Funktionsdetailansicht
Aufrufstrukturansicht
Aufrufer-/Aufgerufener-Ansicht
Modul- und Funktionsansichten
Anpassen von Datenrasteransichten
Öffnen einer Berichtsdatei für Profilerstellung
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:
Öffnen Sie ggf. Visual Studio.
Klicken Sie im Menü Datei auf Datei öffnen.
Navigieren Sie im Dialogfeld Datei öffnen zu dem Ordner mit der Profilerstellungsberichtsdatei, und wählen Sie diese aus.
Typen von Profilerstellungsdaten
Die Profilerstellungsdaten für eine Funktion enthalten Summe, Mittelwert, Mindest- und Maximaldauer sowie Prozentsätze. Die Daten werden für zwei Sätze an Werten für die zeitliche Steuerung berechnet:
Die Werte für Verstrichene inklusive Zeit entsprechen der Gesamtdauer für die Ausführung einer Funktion.
Bei den Werten für Verstrichene exklusive Zeit handelt es sich um die Zeitdauer, die eine Funktion zum Ausführen des eigenen Codes benötigt. Die Werte enthalten nicht die für untergeordnete Funktionen erforderliche Zeit.
Typen von Profilerstellungsberichtsansichten
In Profilerstellungsberichtansichten werden Daten auf zwei Arten angezeigt:
In Aufrufdiagrammansichten werden Informationen zu Funktionen im Kontext der Ausführungspfade angezeigt. In der Struktur Langsamster Pfad des Zusammenfassungsfensters wird der Ausführungspfad angezeigt, in dem die Anwendung während der Profilerstellung kumulativ die meiste Zeit verbracht hat. Die Aufrufstrukturansicht ist ein Aufrufdiagramm für alle Funktionen der Profilerstellung. 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 den Funktionslistenansichten werden die Funktionen in einer ausgewählten Datenspalte sortiert und aufgeführt. In der Liste Funktionen mit den meisten einzelnen Aufgaben auf der Zusammenfassungsseite werden die Funktionen, die die meiste Zeit für die Ausführung ihres eigenen Codes benötigt haben aufgeführt. Hierbei wird die Zeit für das Aufrufen untergeordneter Funktionen durch die Funktion nicht berücksichtigt. In der Modulansicht werden Funktionen anhand der Quelldatei für den JavaScript-Code und anhand des Moduls für andere Sprachen gruppiert. Die Funktionsansicht ist eine einzelne Liste von Funktionen.
Profilerstellungsberichtansichten
Zusammenfassungsansicht
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 angezeigt, in der die Anwendung bei der Profilerstellung kumulativ die meiste Zeit aufgewendet hat. 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.
Funktionsdetailansicht
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.
Aufrufstrukturansicht
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 |
---|---|
Anzahl der Aufrufe |
Die Anzahl der Aufrufe an die Funktion durch die übergeordnete Funktion in der Aufrufstruktur. |
Verstrichene inklusive Zeit in % |
Der Gesamtprozentsatz der für das Ausführen dieser Funktion aufgewendeten Ausführungszeit. |
Verstrichene exklusive Zeit in % |
Der Gesamtprozentsatz der für das Ausführen des Texts einer Funktion aufgewendeten Ausführungszeit. Dies umfasst nicht die Zeit für Funktionen, die von der Funktion aufgerufen wurden. |
Durchschnittl. verstrichene inklusive Zeit |
Die beim Ausführen der Funktion durchschnittlich verstrichene Zeit. |
Durchschnittl. verstrichene exklusive Zeit |
Die beim Ausführen der Funktion durchschnittlich verstrichene Zeit. Dies umfasst nicht die Zeit für Funktionen, die von der Funktion aufgerufen wurden. |
Modulname |
Für JavaScript-Funktionen der Name der Quelldatei, die die Funktion enthält. Andernfalls der Name des Moduls (DLL oder EXE), das die Funktion enthält. |
Aufrufer-/Aufgerufener-Ansicht
Die Aufrufer-/Aufgerufener-Ansicht ist eine strukturierte Darstellung der Daten im Balkendiagramm der Zusammenfassungsansicht 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 enthalten alle Aufrufe an die Funktion. 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 Aufrufe an die Funktion. Die Werte der aufrufenden und der aufgerufenen Funktionen umfassen nur die Zeit, die beim Aufrufen oder Aufgerufen Werden der ausgewählten Funktion verstrichen ist.
Um in den Aufrufstrukturen einer Funktion zu navigieren, doppelklicken Sie auf einen Aufruf oder eine aufgerufene Funktion. Die Funktion auf die Sie doppelklicken wird zur neuen ausgewählten Funktion. Die Aufrufer und aufgerufenen Funktionen werden nun angezeigt.
Spalten der Aufrufer-/Aufgerufener-Ansicht
Spaltenname |
Beschreibung |
---|---|
Anzahl der Aufrufe |
|
Verstrichene inklusive Zeit in % |
|
Verstrichene exklusive Zeit in % |
|
Durchschnittl. verstrichene inklusive Zeit |
|
Durchschnittl. verstrichene exklusive Zeit |
|
Modulname |
Für JavaScript-Funktionen der Name der Quelldatei, die die Funktion enthält. Andernfalls der Name des Moduls (DLL oder EXE), das die Funktion enthält. |
Modul- 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 |
---|---|
Anzahl der Aufrufe |
Die Anzahl von Aufrufen an die Funktion. |
Verstrichene inklusive Zeit in % |
Der Prozentsatz der gesamten Ausführungszeit bei der Profilerstellungsausführung, die von der Funktion benötigt wurde. |
Verstrichene exklusive Zeit in % |
Der Prozentsatz der gesamten Ausführungszeit, die für das Ausführen der Funktion benötigt wurde. Dieser Wert enthält nicht die Zeit, die von den von der Funktion aufgerufenen Funktionen benötigt wurde. |
Durchschnittl. verstrichene inklusive Zeit |
Die durchschnittliche Ausführungszeit der Funktion. |
Durchschnittl. verstrichene exklusive Zeit |
Die durchschnittliche Ausführungszeit der Funktion. Dieser Wert umfasst nicht die Zeit für Funktionen, die von der Funktion aufgerufen wurden. |
Modulname |
Für JavaScript-Funktionen der Name der Quelldatei, die die Funktion enthält. Andernfalls der Name des Moduls (DLL oder EXE), das die Funktion enthält. |
Anpassen von Datenrasteransichten
Sie können Datenspalten hinzufügen oder entfernen und die Reihenfolge ändern, in der die Spalten angezeigt werden. Klicken Sie mit der rechten Maustaste auf eine Datenzeile, und wählen Sie Spalten hinzufügen/entfernen aus.
Hinweis
Wenn die Instrumentationsmethode für verwalteten und systemeigenen Code verwendet wird, werden zusätzliche Informationen über die Codeausführung erfasst und in den Zeitsteuerungsfeldern Inklusive Anwendungszeit und Exklusive Anwendungszeit angezeigt.Diese Informationen sind in JavaScript nicht verfügbar, sodass die Werte für Anwendung mit denen für Verstrichen identisch sind.Es empfiehlt sich nicht, diese Felder einer Ansicht hinzuzufügen.
Weitere Spalten mit Profilerstellungsdaten
Spaltenname |
Beschreibung |
---|---|
Funktionsname |
Der Name der Funktion. |
Funktionsadresse |
Die Adresse der Funktion. |
Funktionszeilennummer |
Die Zeilennummer des Anfangs dieser Funktion in der Quelldatei. |
Anzahl der Aufrufe |
Die Gesamtzahl der Aufrufe der Funktion. |
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. |
Exklusive Zeit der Restkapazität für Überprüfungen |
Der von der Instrumentation verursachte zusätzliche Zeitaufwand für diese Funktion. Dieser umfasst jedoch nicht den zusätzlichen Zeitaufwand in Funktionen, die von dieser Funktion aufgerufen wurden. Der zusätzliche Testaufwand wurde von allen exklusiven Zeiten subtrahiert. |
Inklusive Zeit der Restkapazität für Überprüfungen |
Der von der Instrumentation verursachte zusätzliche Zeitaufwand für diese Funktion und ihre untergeordneten Funktionen. Dieser umfasst auch den zusätzlichen Zeitaufwand für Funktionen, die von dieser Funktion aufgerufen wurden. Der zusätzliche Testaufwand wurde von allen inklusiven Zeiten subtrahiert. |
Verstrichene exklusive Zeit |
Die insgesamt verstrichene exklusive Zeit aller Aufrufe dieser Funktion. |
Maximal verstrichene exklusive Zeit |
Die maximal verstrichene exklusive Zeit für einen Aufruf dieser Funktion. |
Mindestens verstrichene exklusive Zeit |
Die verstrichene exklusive Mindestzeit für einen Aufruf dieser Funktion. |
Verstrichene inklusive Zeit |
Die insgesamt verstrichene inklusive Zeit aller Aufrufe dieser Funktion. |
Maximal verstrichene inklusive Zeit |
Die maximal verstrichene inklusive Zeit für einen Aufruf dieser Funktion. |
Mindestens verstrichene inklusive Zeit |
Die verstrichene inklusive Mindestzeit für einen Aufruf dieser Funktion. |