it-swarm.com.de

Wie kann man die Verzögerung der Benutzeroberfläche auf dem Computer messen?

Gibt es Tools, mit denen Sie die Verzögerung der Benutzeroberfläche einer bestimmten Anwendung messen können, die auf einem bestimmten Computer ausgeführt wird?

Es gibt viele Richtlinien, wie "schnell" eine Benutzeroberfläche sein sollte, aber wie kann ich sie messen?

Klarstellung : Ich verwende einen Desktop-PC. Dies ist nicht mobil orientiert.

Klarstellung 2 : Dies für ein traditionelles Anwendungsprogramm. Keine Web-App. (Irgendwie altmodisch, ich weiß.)

16
nonot1

" Es gibt viele Richtlinien, wie" schnell "eine Benutzeroberfläche sein sollte, aber wie kann ich sie messen ?"

Dies ist wahrscheinlich selbstverständlich, aber um die Latenz der Benutzeroberfläche zu messen, müssen Sie den Unterschied zwischen dem Beginn und dem Abschluss einer Aktion oder eines Ereignisses in der Benutzeroberfläche berücksichtigen. Dies kann nicht programmgesteuert erfolgen, indem diese Zeiten manuell aufgezeichnet werden, oder programmgesteuert, indem unmittelbar vor Beginn einer Aktion ein Zeitstempel und unmittelbar nach Abschluss der Aktion ein Zeitstempel abgerufen und dann die Differenz ermittelt wird. Dieser Zeitunterschied ist die Latenz der Benutzeroberfläche der Anwendung für diese Aktion.

Wenn Sie diese Messungen für den Satz von Aktionen durchführen, aus denen ein UI-Fluss besteht, und dies für einen repräsentativen Satz von UI-Flüssen tun, sollten Sie ein umfassendes Bild der UI-Latenz in einer Anwendung erhalten.

" Gibt es Tools, mit denen Sie die Verzögerung der Benutzeroberfläche einer bestimmten Anwendung messen können, die auf einem bestimmten Computer ausgeführt wird ?"

Ja. Die Latenz in der Benutzeroberfläche ist die Summe der Latenz in verschiedenen Subsystemen auf einer Maschine: Netzwerk, Datei-E/A, CPU, Speicher usw. Die Latenz der Benutzeroberfläche kann auf einem hohen Niveau gemessen werden, kann aber auch auf einem niedrigeren Niveau gemessen werden indem Sie die Latenz in einer dieser Komponenten untersuchen.

Im Folgenden finden Sie einige spezifische Tools und Techniken, mit denen Sie die Latenz der Benutzeroberfläche in verschiedenen Anwendungstypen messen und analysieren können, entweder auf hoher Ebene oder auf Komponentenebene.

Desktop-Anwendungen

Wenn Sie nur nach groben Messungen der UI-Latenz suchen, das Durchspielen einer Videowiedergabe für Sie funktioniert und Sie nicht mehr als einen oder mehrere Versuche benötigen, würde ich zunächst eine Lösung für die UI-Flow-Wiedergabe in Betracht ziehen die in diese Antwort auf Ihre Frage von Mel und Ben Brocka vorgeschlagenen. Die Camtasia-Option klingt für diesen Anwendungsfall vielversprechend.

Wenn Sie nach präzisen Messungen der UI-Latenz, einer schnellen und automatischen Wiederholbarkeit dieser Messungen und der Option suchen, eine schnelle und zuverlässige Berichterstattung über diese UI-Latenz zu erstellen ( und, haben Sie die Zeit und a technischer Hintergrund/Neigung), dann könnte eine Automatisierungslösung auf Betriebssystemebene einen Blick wert sein. AutoIt ist ein beliebtes Automatisierungsframework für Windows. AppleScript/AppleScript GUI Scripting scheint das nächste Äquivalent für Mac zu sein.

Der grundlegende Ansatz mit AutoIt oder AppleScript ist der gleiche wie bei jeder anderen programmgesteuerten Latenzmessung: Erhalten Sie einen Zeitstempel unmittelbar vor Beginn einer Aktion, dann einen Zeitstempel unmittelbar nach Abschluss der Aktion, und der Unterschied zwischen diesen beiden ist Ihre UI-Latenz.

Vielleicht ist dieser Ansatz für Ihre Bedürfnisse übertrieben, vielleicht auch nicht. Die Frage ist ziemlich weit gefasst.

Anwendungen, die über ein Netzwerk kommunizieren

Netzwerklatenz führt häufig zu Latenz in der Benutzeroberfläche. Viele Anwendungen, unabhängig davon, ob sie vom Betriebssystem stammen oder für einen Browser entwickelt wurden, senden und empfangen Nachrichten über HTTP oder ein anderes Netzwerkprotokoll.

Wireshark erfasst den gesamten Netzwerkverkehr (einschließlich HTTP-Verkehr) von und zu einem Computer und verfügt über Funktionen zur Analyse. Wenn Ihre Anwendung nicht in einem Webbrowser ausgeführt wird und Sie den Beitrag des Netzwerks zur Latenz der Benutzeroberfläche isolieren möchten, ist dies wahrscheinlich die beste Wahl für eine gründliche Analyse.

Charles Proxy und (für Windows) Fiddler sind ebenfalls browserunabhängige Tools, die für die Netzwerklatenzanalyse für HTTP/HTTPS-Verkehr nützlich sind.

Grafische Anwendungen

Anwendungen, die 2D- und 3D-Grafiken in erheblichem Maße nutzen, sind auf nativer Ebene offensichtlich beliebt, und Webbrowser-basierte Grafikanwendungen sind ebenfalls beliebt (wobei Flash dominant ist, aber abnimmt und HTML5 Canvas und WebGL weniger beliebt sind, aber auf dem Vormarsch sind). Ein Hauptmaß für die Verzögerung der Benutzeroberfläche in diesen Anwendungen ist Bildrate (d. H. Bilder pro Sekunde; FPS). Viele grafikintensive Anwendungen verfügen über Funktionen, die diese Messung dem Benutzer ohne spezielle Werkzeuge zugänglich machen.

Im Internet

Webbrowser und Websites/Anwendungen, die in ihnen ausgeführt werden, stellen eine große Teilmenge von "einer bestimmten Anwendung, die auf einem bestimmten Computer ausgeführt wird" dar.

Eines der besten Tools zur Messung der Latenz im Web ist das Wasserfalldiagramm eines Browsers zum Netzwerkverkehr. Dies ist in Firefox im Bereich "Net" der Erweiterung Firebug verfügbar, Chrome und Safari in (Zahnradsymbol) -> Tools -> Entwicklertools -> Netzwerk und Internet Explorer 9 in (Zahnradsymbol) -> F12-Entwicklertools -> Netzwerk (Erfassung starten). Diese Frage on Stackoverflow und seine Antworten geben einen guten Überblick über die Interpretation von Wasserfalldiagrammen für den Netzwerkverkehr Zumindest in Firebug und Chrome können diese Wasserfalldiagramme exportiert und zur späteren Analyse gespeichert werden.

Der kostenlose Dienst unter WebPagetest.org ist eine weitere großartige Möglichkeit, die Latenz zu messen. Sie können einfach eine URL eingeben und Leistungsergebnisse abrufen. Das Tool bietet eine Reihe großartiger Funktionen. Jeder Satz von Testergebnissen erhält eine eigene URL, sodass Sie ihn verlinken oder mit einem Lesezeichen versehen können. Sie können Ergebnisse auch im gleichen Format exportieren wie Chrome und Firebug zur Verfügung stellen. Vielleicht am wichtigsten ist, dass Sie die Ladezeiten von Seiten aus einer Vielzahl verschiedener Browsertypen, Verbindungsgeschwindigkeiten und Speicherorte in der gesamten Welt testen können Globus.

Wenn Sie Entwickler einer Website oder Webanwendung sind, können Sie mit der Navigation Timing API ( W3C-Spezifikation , mehr) auch die End-to-End-Latenz der Benutzeroberfläche während Seitenübergängen analysieren Dokumentation , Browser-Support-Matrix ). Diese Latenzmessungen konnten für eine große Anzahl von Benutzern aufgezeichnet und insgesamt analysiert werden, um einen angemessenen Überblick über die Leistung für alle Benutzer zu erhalten.

Für einige aggregierte Daten zur Latenz beim Laden von Seiten (eine Art von UI-Latenz) und zur Leistung im Web ist Steve Souders HTTP-Archiv eine gute Ressource.

Die oben genannten Tools und Ressourcen sind nützlich, um die Latenz aufgrund des Netzwerkverkehrs und insbesondere der Ladezeiten von Seiten zu messen und zu analysieren. Dies ist normalerweise die häufigste Ursache für Latenz in Webanwendungen.

Nach der Netzwerklatenz und der Wartezeit auf dem Server (die eine eigene Latenzmessmethode umfasst) kann nicht performantes JavaScript auch die Reaktionsfähigkeit der Benutzeroberfläche verlangsamen/die Latenz der Benutzeroberfläche in Webanwendungen erhöhen. Wenn Sie eine von Ihnen entwickelte Webanwendung analysieren, kann die JavaScript-Leistung mithilfe von Tools wie der Firebug-Erweiterung von Firefox und den Entwicklertools von Chrome gemessen werden, indem Sie den zu analysierenden Code in console.profile () und console.profileEnd () ( Weitere Informationen hier und hier ).

7
jqp

Ja. Automatisierungs-Frameworks können die Zeit zwischen Interaktionen und Antworten messen. Sie können die Ergebnisse von Hunderten von Versuchen in Protokolldateien ausgeben, die leicht in Grafiken und Tabellen umgewandelt werden können. Im Web ist Selen aufgrund der großen Anzahl von Sprachbindungen und seiner Vielzahl von Testwerkzeugen wahrscheinlich die häufigste Wahl. Tatsächlich sollten Sie in der Lage sein, UI-Leistungsprüfungen in eine allgemeinere Reihe von Regressionstests zu integrieren.

Seien Sie jedoch gewarnt, dass Leistungstests täuschend einfach aussehen können. Benutzeroberflächen werden unter verschiedenen Umständen unterschiedlich gebogen und belastet. Daher müssen Sie bei der Auswahl der Testszenarien und der Anzahl der Versuche sehr gründlich sein.

5

Abhängig von der Plattform und der verwendeten Software können Sie entweder die Zeit programmgesteuert aus der Software heraus messen oder die spezifischen Interaktionen aufzeichnen und die Videoausgabe messen.

Für letztere kann eine einfache Bildschirmaufzeichnungssoftware den Trick tun. Wenn Sie mit einer geschlossenen oder mobilen Plattform arbeiten, ist möglicherweise eine Aufnahme mit einer tatsächlichen Kamera erforderlich. Da die Aufzeichnung häufig für Usability-Tests verwendet wird, ist diese Art von Ausrüstung möglicherweise bereits verfügbar.

Sie können dann alles in einer Videobearbeitungssoftware messen.

2
Mel