Leistungsanalyse für Windows-Runtime-Apps mit JavaScript

Applies to Windows and Windows Phone

Bei der Leistungsanalyse für Windows-Runtime-Apps mit JavaScript handelt es sich um ein Tool, das Entwicklern das Erkennen allgemeiner Leistungsprobleme in ihren Windows-Runtime-Apps mit JavaScript ermöglicht. Die Benutzer erwarten von Apps, dass sie sofort auf Berührungen, Antippen, Klicks, Gesten und Tastendrücke reagieren. Zudem wünschen sich Benutzer sanfte Animationen und schnelle Ladezeiten. Die Leistungsanalyse für Windows-Runtime-Apps mit JavaScript ermöglicht Entwicklern das Testen ihrer Apps in einer Vielzahl gängiger Szenarien.

Installieren und Ausführen des Tools

Das Leistungsanalysetool für Windows-Runtime-Apps mit JavaScript ist im SDK (Software Development Kit) für Windows 8 enthalten.

So installieren Sie das Tool, und so führen Sie es aus:

  1. Laden Sie das SDK für Windows 8 herunter, und installieren Sie es: Navigieren Sie zu Downloads für Entwickler, und klicken Sie unter der Überschrift Tools und SDK herunterladen auf die Schaltfläche Jetzt herunterladen.
  2. Nachdem Sie das SDK installiert haben, befindet sich unter dem SDK-Installationsverzeichnis eine Version des Tools für die einzelnen Architekturen:
    • Die auf ARM-Computern ausgeführte Version befindet sich normalerweise unter C:\Program Files (x86)\Windows Kits\8.0\bin\arm\AppPerfAnalyzer\appperfanalyzer_js.exe.
    • Die unter 32-Bit-Systemen ausgeführte Version befindet sich normalerweise unter C:\Program Files (x86)\Windows Kits\8.0\bin\x86\AppPerfAnalyzer\appperfanalyzer_js.exe.
    • Die unter 64-Bit-Systemen ausgeführte Version befindet sich normalerweise unter C:\Program Files (x86)\Windows Kits\8.0\bin\x64\AppPerfAnalyzer\appperfanalyzer_js.exe.
  3. Wenn Ihr Testcomputer nicht gleichzeitig auch Ihr Entwicklungscomputer ist, kopieren Sie den Ordner AppPerfAnalyzer für die entsprechende Architektur auf den Testcomputer.
  4. Starten Sie das Tool, indem Sie appperfanalyzer_js.exe ausführen.

Windows Store-Apps können mit einer Vielzahl von Hardware ausgeführt werden. Sie können dieses Tool demzufolge auf ARM-, Intel ATOM- oder AMD Fusion E- oder Fusion C-basierten Computern verwenden. Das Tool kann mit Administratorrechten für eine beliebige App ausgeführt werden, die für den Benutzer installiert ist. Dazu zählen über Microsoft Visual Studio oder den Windows Store installierte Apps. Führen Sie dieses Tool nicht für Apps aus, die an den Debugger von Visual Studio angefügt sind, da der Debugger die Leistung der App beeinträchtigt. Führen Sie es nur für vertrauenswürdige Apps aus.

In dem Bericht erfasste Tests

Das Tool führt die folgenden Berichte aus:

  • Aktivierungszeit

    Eine schnelle Aktivierung ist wichtig für eine hohe Benutzerfreundlichkeit. Bei diesem Test wird die Zeit gemessen, die die App für die Aktivierung benötigt. Die Aktivierungszeit wird ab dem Zeitpunkt, zu dem der Benutzer auf die Kachel tippt, bis zum Abschluss des Aktivierungsereignisses durch die App gemessen. Die gängigsten Methoden zum Verbessern der Aktivierungszeit bestehen darin, zum Zeitpunkt der Aktivierung nur den wichtigsten Code und die wichtigsten Ressourcen zu laden und lange Vorgänge im Rahmen der Aktivierung sowie netzwerkgebundene Vorgänge bei der Aktivierung zu vermeiden. Weitere Informationen zum Optimieren der Aktivierungszeit finden Sie unter Verringern der App-Ladezeit.

  • Reaktionsfähigkeit der Benutzeroberfläche

    Die Reaktionsfähigkeit der Benutzeroberfläche ist ein wesentlicher Bestandteil einer hohen Benutzerfreundlichkeit. Sie gibt an, wie schnell eine App die Interaktionen des Benutzers mit der Benutzeroberfläche verarbeiten und darauf reagieren kann. Bei diesem Test wird untersucht, ob die App innerhalb einer akzeptablen Zeit auf Benutzereingaben reagieren kann. Gängige Methoden zur Optimierung der Reaktionsfähigkeit der Benutzeroberfläche bestehen darin, lange Vorgänge im Benutzeroberflächen-Thread zu vermeiden, Aufgaben auf Web-Worker auszulagern und die setImmediate-Funktion beim Ausführen der Aufgaben im Benutzeroberflächen-Thread korrekt zu verwenden. Weitere Informationen zum Verbessern der Reaktionsfähigkeit der Benutzeroberfläche finden Sie unter Ausführen von Code.

  • Layoutdurchläufe

    Das HTML-Renderingmodul muss das Layout für das HTML-Markup des Bildschirms immer dann erstellen, wenn ein Ladevorgang ausgeführt wird und wenn die App DOM-Eigenschaften ändert, die sich auf das Layout auswirken. Layoutdurchläufe sind ressourcenintensive Vorgänge, da viele Berechnungen erforderlich sind. Die App sollte weniger als 60 Layoutdurchläufe pro Sekunde auslösen. Zudem sollte jeder Layoutdurchlauf durchschnittliche weniger als 17 ms dauern. Außerdem sollten die Layoutdurchläufe weniger als 20 % der CPU-Gesamtzeit Ihrer App ausmachen. Es gibt eine Reihe von Techniken, mit deren Hilfe die Anzahl der Layoutdurchläufe reduziert werden kann. Dazu zählen die Verwendung von CSS-Eigenschaften und die Stapelverarbeitung des Layoutvorgangs. Weitere Informationen zum Verwalten von Layoutdurchläufen finden Sie unter Effizientes Verwalten des Layouts.

  • Synchron-XMLHttpRequest für Benutzeroberflächen-Thread

    Synchron-XHR ist ein Sperrvorgang, der bei Ausführung für einen Benutzeroberflächen-Thread eine Benutzerinteraktion mit der App verhindert. Dieser Test erkennt, ob für den Benutzeroberflächen-Thread synchrone XHR-Aufrufe ausgeführt werden. Stattdessen sollten Sie asynchrone XHR-Aufrufe verwenden. Weitere Informationen finden Sie unter Ausführen von Code.

  • Bildskalierung

    Die Bildskalierung ist ein ressourcenintensiver Vorgang, für dessen Verarbeitung neben der zum Decodieren des Bilds benötigten Zeit zusätzliche Zeit erforderlich ist. Sie sollten daher Bilder in der Größe verwenden, in der Sie sie anzeigen möchten. Dieser Test erkennt, ob die App Bilder skaliert. Weitere Informationen zum Optimieren des Ladevorgangs für Bilder und zum Konzipieren der App für mehrere Auflösungen finden Sie in Verwenden von Miniaturbildern für das schnelle Rendern und in den Richtlinien für die Skalierung auf die Pixeldichte.

  • Speicherbedarf

    Bei Verwendung eines kleinen Speichers können Apps besser ausgeführt werden. Eine App sollte einen Speicherbedarf von weniger als 60 MB haben. Wenn Sie den Speicherbedarf der App reduzieren möchten, vermeiden Sie das Beibehalten von Verweisen auf Objekte (beispielsweise Bilder oder Blobs), die nicht mehr benötigt werden.

  • Festgelegte Laufzeitbroker-Speicherreferenz

    Der Laufzeitbrokerprozess wird von allen Apps zum Kommunizieren mit Bereichen von Windows verwendet, auf die sie keinen direkten Zugriff haben. Ein hoher Speicherbedarf für den Laufzeitbrokerprozess kann ein Anzeichen für eine nicht korrekte Verwendung des Brokers sein. Durch diesen Test wird sichergestellt, dass der Speicherbedarf des Laufzeitbrokers für die festgelegte Referenz weniger als 11 MB und für die Arbeitssätze weniger als 21 MB beträgt. Wird eine übermäßige Speicherauslastung erkannt, liegt die Ursache des Problems oftmals in zu vielen geöffneten Dateibehandlungen.

  • Speicherverluste

    Obwohl für JavaScript die Garbage Collection verwendet wird, können trotzdem Speicherverluste auftreten. Eine häufige Ursache sind Zirkelbezüge zwischen einem oder mehreren Objekten, die von keinem anderen Objekt oder keiner anderen Variable referenziert werden. Da sie sich gegenseitig referenzieren, können diese Objekte nicht in die Garbage Collection aufgenommen werden. Dieser Test sucht während eines 30-sekündigen Leerlaufstatus, der 30 Sekunden nach Aktivierung beginnt, nach erhöhten Speicherauslastungen. Das Ziel besteht darin, dass die erhöhte Speicherauslastung sowohl in den Arbeits- als auch in den Referenzsätzen maximal 10 % beträgt.

  • CPU-Auslastung im Leerlaufstatus

    Sobald eine App gestartet wurde und ausgeführt wird, sollte sie in einen Leerlaufstatus wechseln, in dem sie auf Benutzereingaben wartet. Bezüglich der Batterienutzungsdauer ist es wichtig, dass die App ihre CPU-Aktivität in diesem Leerlaufstatus minimiert. Für einige Apps muss die CPU unter Umständen zum Anzeigen von Animationen oder zum Ausführen von Hintergrundaktivitäten verwendet werden. Dieser Test untersucht die CPU-Auslastung, wenn sich die App im Leerlauf befindet. Dazu wird ein 30-sekündiges Intervall analysiert, das 30 Sekunden nach Aktivierung beginnt. Im Leerlauf sollte die App weniger als 3 % der Prozessorkapazität verwenden.

  • Erfolgreiches Anhalten

    Eine klug konzipierte App wird erfolgreich angehalten, wenn sie in den Hintergrund verschoben wird. Wenn eine App beim Verschieben in den Hintergrund nicht schnell genug angehalten wird, wird sie vom System beendet. Das Fortsetzen einer App geht schneller vonstatten als ein Neustart. Dieser Test untersucht, ob das Anhalten der App innerhalb der zugeteilten Zeit zu einem Fehler führt. Eine häufige Ursache für einen Fehler besteht darin, dass beim Anhalten zu viele Statusinformationen gespeichert werden sollen. Weitere Informationen zum erfolgreichen Anhalten finden Sie unter Optimieren des App-Lebenszyklus.

  • Speicherreduzierung im angehaltenen Zustand

    Zur Reduzierung der Anzahl der App-Aktivierungen behält Windows möglichst viele angehaltene Apps im Arbeitsspeicher. Um die Wahrscheinlichkeit einer Beendigung der App zu minimieren, sollte der Speicherbedarf der App beim Anhalten durch das System reduziert werden. Bei diesem Test wird der Unterschied bezüglich der Speicherauslastung durch die App zwischen den Zeitpunkten gemessen, zu denen sie aktiv bzw. angehalten ist. Weitere Informationen zum Reduzieren des Speicherbedarfs Ihrer App beim Anhalten durch das System finden Sie unter Optimieren des App-Lebenszyklus.

  • Zunahme der App-Speicherauslastung

    Das Verhindern einer fortlaufenden Zunahme der Speicherauslastung ist besonders wichtig, damit die App klein bleibt. Zudem ermöglicht ein geringer Speicherbedarf die Beibehaltung des angehaltenen Zustands für die App, ohne beim Verschieben in den Hintergrund von Windows beendet zu werden. Bei diesem Test wird die Speicherauslastung der App während ihrer Verwendung überwacht, und es wird ein Diagramm angezeigt, in dem die Speicherauslastung der App veranschaulicht wird. Im Idealfall weist die App eine stabile oder abnehmende Speicherauslastung auf. In diesem Fall würde die App den Speicher korrekt bereinigen. Wenn aus dem Diagramm hervorgeht, dass die Speicherauslastung durch die App stetig zunimmt, weist die App unter Umständen einen Speicherverlust auf, der untersucht werden sollte.

  • Zunahme der Laufzeitbroker-Speicherauslastung

    Das Verhindern einer fortlaufenden Zunahme der Speicherauslastung ist besonders wichtig, damit die App klein bleibt. Zudem ermöglicht ein geringer Speicherbedarf die Beibehaltung des angehaltenen Zustands für die App, ohne beim Verschieben in den Hintergrund von Windows beendet zu werden. Bei diesem Test wird die Speicherauslastung des Laufzeitbrokers während der Bearbeitung verschiedener Aufgaben innerhalb der Anwendung überwacht, und es wird ein Diagramm angezeigt, in dem die Speicherauslastung der App veranschaulicht wird. Im Idealfall weist die App eine stabile oder abnehmende Speicherauslastung auf. In diesem Fall würde die App den Speicher korrekt bereinigen. Wenn aus dem Diagramm hervorgeht, dass die Speicherauslastung durch den Laufzeitbroker stetig zunimmt, weist die App unter Umständen einen Speicherverlust auf, der untersucht werden sollte.

 

 

Anzeigen:
© 2015 Microsoft