Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Leitfaden hilft Ihnen, die Reaktionsfähigkeit Ihrer Windows-Anwendung zu verbessern, indem Sie die Latenz für startende und wichtige Interaktionen optimieren. Schnelle, reaktionsfähige Interaktionen (auch bekannt als Interaktionen mit geringer Latenz) schaffen eine bessere Benutzererfahrung. Das Verständnis der Interaktionserwartungen, das Messen der aktuellen Dauer und das Festlegen von Verbesserungszielen je nach Interaktionsklasse kann zu erheblichen Verbesserungen der Benutzerfreundlichkeit und -zufriedenheit führen.
Schritt-für-Schritt-Anleitung zur Optimierung von Interaktionen für reaktionsfähiges Verhalten
Kunden können sich fühlen, wenn das Laden einer Anwendung, die Menünavigation oder das Laden von Seiten/Inhalten langsam ist. Sie sind gekommen, um eine schnelle, nahtlose Erfahrung zu erwarten, und wir haben einige Schritte und Anleitungen geteilt, um diese Erwartungen besser zu verstehen.
Die grundlegenden Schritte zur Optimierung der Latenz sind:
Definieren Sie das Szenario, und fügen Sie TraceLogging-Ereignisse hinzu.
Erstellen Sie eine Liste der wichtigsten Interaktionen, die ein Benutzer während der Verwendung Ihrer App durchläuft, z. B. Starten, Öffnen eines Menüs, Navigieren zu einer neuen Seite und Rendern von Inhalten usw. Fügen Sie für jede dieser Interaktionen ein Startereignis und ein Stoppereignis hinzu, das zur Messung und Analyse verwendet werden soll. Weitere Informationen zum Hinzufügen von TraceLogging, einem Format für die selbst beschreibende Ereignisablaufverfolgung für Windows (ETW).
Legen Sie Ziele basierend auf der Interaktionsklasse fest.
Benutzer haben je nach Art der Interaktion unterschiedliche Erwartungen an die Leistung und Reaktionsfähigkeit einer App. Beispielsweise, wie schnell eine App gestartet wird und wie schnell eine Seite geladen wird. Stellen Sie sich den akzeptablen Zeitraum vor, den benutzer zum Abschließen der wichtigsten Interaktionen in Ihrer App benötigt. Dies kann zwischen 200 Millisekunden (ms) und 5 Sekunden (Sek.) liegen. Weisen Sie dann jeder Aufgabe eine Interaktionsklassenbezeichnung mit einem zugeordneten Ziel zu. Nachfolgend finden Sie einige grundlegende Richtlinien, zusammen mit Vorschlägen, wie Sie eine Benutzeroberfläche (Ui) einbeziehen können, um die Wahrnehmung der Reaktionsfähigkeit zu verbessern:
| Bezeichnung der Interaktionsklasse | Nutzerwahrnehmung | Verzögerungsbereich | Beispiele | Vorgeschlagene Benutzeroberfläche |
|---|---|---|---|---|
| Schnell | Minimal spürbare Verzögerung | 100 - 200 Millisekunden | App-Leiste öffnen, Rechtsklickmenü | |
| Interaktiv | Schnell, aber nicht schnell | 300 - 500 ms | Beenden einer App, Anzeigen zwischengespeicherter Suchergebnisse | |
| Pause | Nicht schnell, aber reaktionsfähig | 500 ms - 1 Sek. | Navigieren Sie zu einer anderen Seite, setzen Sie die App aus einem angehaltenen Zustand fort, zeigen Sie Websuchergebnisse an. | Eine Eingangsanimation (z. B. Fliegen in neuen Inhalten) kann verwendet werden, um die für dieses Szenario benötigte Zeit zu maskieren. |
| Warten | Aufgrund der Arbeitsmenge für das Szenario ist dies nicht schnell möglich. | 1 - 3 Sek. | Starten der App | Ein sich drehender/wartender Cursor kann verwendet werden, um den Fortschritt zu notieren. Sowohl eine Ausgangs- als auch eine Eingangsanimation (z. B. fly old page out, fly new page in) können verwendet werden, um die für dieses Szenario benötigte Zeit zu maskieren. |
| Lange Wartezeit | Fühlt sich nicht mehr reaktionsfähig | 2 - 5 Sek. | Große App-Starts (erweiterter Begrüßungsbildschirm verwenden), Starten eines HD-Videostreams | Es wird eine "Ladebenutzeroberfläche" angezeigt – wenn möglich, fügen Sie eine Option "Abbrechen" für den Benutzer ein. Die Ladebenutzeroberfläche sollte in der Fast-Interaktionsklasse angezeigt werden. Die Ladebenutzeroberfläche muss keinen Prozentsatz oder eine verbleibende Zeit anzeigen. |
| Gefangener | Eine lange Wartedauer – reserviert für unvermeidlich lange/komplexe Szenarien | 5 - 10 Sek. | Systemanmeldung | Eine "Ladebenutzeroberfläche" oder ein Dialogfeld wird angezeigt – sofern möglich, fügen Sie eine Option "Abbrechen" für den Benutzer ein. Das Dialogfeld sollte in der Schnellinteraktionsklasse angezeigt werden. Das Dialogfeld sollte einen Prozentsatz oder eine verbleibende Zeit anzeigen, wenn dies dem Benutzer einen nützlichen Kontext bieten würde. |
| Lang laufend | Lange Vorgänge – Benutzer werden wahrscheinlich Multitasking betreiben (währenddessen wechseln) | 10 - 30+ Sek. | Installieren neuer Features oder Updates, Downloads großer Dateien | Die Benutzeroberfläche sollte so konzipiert werden, dass sie die Multitaskingmöglichkeit widerspiegelt. Ein Statusdialogfeld sollte angezeigt werden, einschließlich einer Schätzung der Fertigstellung (Prozentsatz, Verbleibende Zeit usw.). Alternativ kann die Benutzeroberfläche vollständig minimiert werden und den Benutzer nur mit einer Toast-Benachrichtigung benachrichtigen, wenn das Szenario abgeschlossen ist. |
Um die genauen Dauern für bestimmte Interaktionen zu überprüfen, können Sie eine Ablaufverfolgung mithilfe von Windows Performance Analyzer (WPA) erfassen und analysieren.
Bevor Sie Ihre Ablaufverfolgung erfassen, bringen Sie Ihr Testgerät in einen Leerlaufzustand, indem Sie den Task-Manager öffnen und sicherstellen, dass die CPU-Auslastung weniger als 5 % ist. Auf diese Weise werden Messstörungen minimiert und angemessene Größenverläufe erzeugt. Dadurch können Sie die Interaktion, die Sie messen möchten, besser isolieren.
Um eine Ablaufverfolgung zu erfassen, öffnen Sie eine Befehlszeile (PowerShell oder Eingabeaufforderung) im Administratormodus.
Geben Sie den Befehl ein:
wpr -start GeneralProfile -filemodeFühren Sie das Interaktionsszenario für Ihre App aus.
Geben Sie den Befehl ein:
wpr -stop Trace.etl
Analysieren Sie das Protokoll und identifizieren Sie Verbesserungsmöglichkeiten.
Analysieren Sie die Dauer jeder von Ihrer App unterstützten Schlüsselinteraktion, indem Sie die Ablaufverfolgung öffnen, die Sie soeben in Der Windows Performance Analyzer (WPA) erfasst haben.
- Um die Ablaufverfolgung in WPA zu öffnen, geben Sie in der Befehlszeile Folgendes ein:
wpa.exe Trace.etl - Erweitern Sie die Dropdownliste "Systemaktivität ", und doppelklicken Sie auf "Generische Ereignisse", um die Analyseansicht zu öffnen.
- Wählen Sie die Ereignisreihe im Zusammenhang mit Ihrer Anwendung aus, und erweitern Sie die Dropdownliste "Anbietername", bis Sie den Vorgangs-, Aufgaben- und Ereignisnamen finden können, der der gesuchten Schlüsselinteraktion zugeordnet ist. Die Dauer des Interaktionsereignisses wird in der Spalte " Zeit " sowie im Diagramm mit "Dauer", "Startzeit" und "Endzeit" aufgeführt.
Wenn die Dauer Ihrer Ablaufverfolgung nicht den Zielen der Interaktionsklasse (z. B. 500 ms) entspricht, identifizieren Sie die wichtigsten Threads für Ihre App, wahrscheinlich den UI-Thread. Sehen Sie sich die obersten Stapel in Bezug auf die CPU-Auslastung und die Wartezeiten an. *Denken Sie daran, dass beim Ausführen der Analyse einige Probleme möglicherweise nicht spezifisch für den Code Ihrer eigenen Anwendung sind.
- Um die Ablaufverfolgung in WPA zu öffnen, geben Sie in der Befehlszeile Folgendes ein:
Weitere Ressourcen
Windows developer