Vom Ăbersetzer: Das Problem der langsamen Software ist in den letzten Wochen zu einem der Hauptdiskussionsthemen bei HabrĂ© und Hacker News geworden. Siehe zum Beispiel Nikita Prokopovs Artikel âMeine EnttĂ€uschung in der Softwareâ und 2432 Kommentare dazu.
Wir verbringen viel Zeit am Computer. Wir warten jedes Mal, wenn Sie Anwendungen starten und Webseiten laden. Ăberall gibt es Spinner- oder Sanduhrsymbole. Eisen wird immer leistungsfĂ€higer, aber Software scheint immer noch langsam zu sein. Warum so?
Wenn Sie einen Computer fĂŒr wichtige Arbeiten verwenden, verdienen Sie schnelle Software. Moderne Software erfĂŒllt diese Anforderungen zu oft nicht. Im
Ink & Switch-Forschungslabor haben wir die GrĂŒnde fĂŒr diese Situation untersucht. Die Software wurde schlieĂlich besser. Dieser Artikel veröffentlichte die Ergebnisse unserer Studie.
Inhaltsverzeichnis
Wo genau ist die Langsamkeit
Was wird von Benutzern als âlangsamesâ Programm wahrgenommen? Manchmal nervt uns Software alle mit Verzögerungen und Verzögerungen. Um diese Probleme besser zu verstehen, sollten intuitive Empfindungen durch akademische Studien ergĂ€nzt werden, die diese Frage streng beantworten.
Die wahrgenommene Geschwindigkeit hĂ€ngt eng mit dem Konzept der Latenz zusammen. Ein Vergleich der wissenschaftlichen Forschung zu âwas langsam zu sein scheintâ mit der Messung der tatsĂ€chlichen Verzögerung in diesen Anwendungen macht deutlich, wie schlecht alles ist.
Verzögerung ist keine Bandbreite
Wenn wir ĂŒber die Softwareleistung sprechen, hören wir oft etwas ĂŒber die Bandbreite. Beispiel: "Dieser Webserver kann 10.000 Anforderungen pro Sekunde ausfĂŒhren." Aber so nehmen Benutzer Dinge nicht wahr. Sie kĂŒmmern sich darum, wie lange ihre spezielle Webanforderung dauert oder wie lange es dauert, ein Dokument zu öffnen, oder wie schnell die Anwendung auf einen Mausklick reagiert. Diese Interaktionen sind mit Latenz verbunden. Verzögerung ist eine wichtige Metrik, die wir in diesem Artikel untersuchen werden.
Benutzerwahrnehmung
Weitere Informationen zur Bedeutung der Latenz in interaktiven Systemen finden Sie hier .
Andere Faktoren beeinflussen das GefĂŒhl der Softwaregeschwindigkeit. Zum Beispiel Bildrate und Feedback bei langen Aufgaben. Wir glauben jedoch, dass die Latenz eine grundlegende MessgröĂe ist und dass sich jede Software bei sehr geringer Latenz extrem schnell anfĂŒhlt.Touch-Schnittstellen
Betrachten Sie zunĂ€chst die Empfindlichkeit des Menschen gegenĂŒber Verzögerungen auf dem Touchscreen.
Forscher ĂŒberprĂŒfen dies mit Tests, die genau bestimmen, welche Verzögerung Benutzer wahrnehmen. Zuerst wird den Probanden eine Schnittstelle angeboten, die (sagen wir) eine Verzögerung von 1 ms und dann (sagen wir) 70 ms hat, und sie wird aufgefordert, Operationen wie das DrĂŒcken einer Taste auszufĂŒhren. Wenn die 70-ms-Schnittstelle durchweg schlechtere Ergebnisse zeigt als die 1-ms-Schnittstelle, werden 70 ms als âwahrnehmbarer Unterschiedâ bezeichnet.
Minimaler spĂŒrbarer Unterschied
Weitere Einzelheiten zum minimalen spĂŒrbaren Unterschied in der Verzögerung und den damit verbundenen experimentellen Einrichtungen finden Sie beispielsweise in dieser Arbeit .Der minimale spĂŒrbare Unterschied ist das Budget, nach dem sich ein bestimmter Vorgang fĂŒr den Benutzer langsam anfĂŒhlt.
Wenn Benutzer beispielsweise Elemente auf den Bildschirm ziehen, nehmen sie Verzögerungen von nur ~ 2 ms wahr. Die am wenigsten wahrnehmbare Verzögerung hĂ€ngt vom Benutzer und der ausgefĂŒhrten Aktion ab, ist jedoch immer sehr gering.
Wahrnehmung von Drag & Drop
Wahrnehmungsbericht 2-16 ms beim Ziehen mit einem Stift .
2-11 ms beim Ziehen mit einem Finger .
Durchschnittlich 11 ms beim Ziehen mit dem Finger .Ăhnliche Ergebnisse wurden beim Zeichnen mit einem Stift auf einer Tablette erhalten. Hier schlugen Forscher vor, dass Benutzer eine Verzögerung von 20 bis 80 ms bemerken. In unseren eigenen inoffiziellen Tests wird eine Verzögerung von etwa 80 ms als sehr auffĂ€llig angesehen, und es dauert viel nĂ€her an 20 ms, bis der Stift wĂ€hrend der Handschrift anspricht.
Wahrnehmung der Stiftverzögerung
Bericht ĂŒber die Wahrnehmung einer Verzögerung von 10 - 70 ms beim Schreiben mit einem Stift .
21â82 ms fĂŒr verschiedene Aktionen mit dem Stift .Der Unterschied zwischen niedriger und hoher Handschriftlatenz ist beim Vergleich offensichtlich:
Links: iPad Pro und Notes App mit einer End-to-End-Latenz von ca. 15 ms. Rechts: Samsung S3 und OneNote App mit einer Verzögerung von ca. 70 ms. Video ist 16 mal langsamer.Eine andere typische Operation auf Touch-GerĂ€ten ist das Klicken auf SchaltflĂ€chen oder Links. Hier haben die Tests festgestellt, dass Benutzer eine Verzögerung um die Wende von 70 ms bemerken (obwohl sie fĂŒr einige einzelne Benutzer wahrscheinlich geringer ist).
Wahrnehmung der Bildschirmverzögerung
Diese Studie ergab eine durchschnittliche minimale unterscheidbare Verzögerung von 69 ms.Hier ist ein Beispiel, in dem zwei verschiedene Verzögerungen verglichen werden:
Links: Ăffnen der Registerkarte "Einstellungen" auf dem iPhone 6s mit einer Verzögerung von ca. 90 ms. Rechts: Umschalten der Einstellungen beim Samsung S3 mit einer Verzögerung von ca. 330 ms. Video ist 16 mal langsamer.Wie erfĂŒllen moderne Anwendungen diese Schwellenwerte? Wenn wir ĂŒber Drag & Drop sprechen, kann kein kommerzielles System einer Verzögerung von mehreren Millisekunden entsprechen, um alle Verbraucher zufrieden zu stellen.
Drag & Drop-Leistung
Wie wir weiter unten sehen werden, passen selbst Displays und GerĂ€te zur Dateneingabe nicht in das Budget von 10 ms, ganz zu schweigen von mehreren Softwareschichten.Wenn Sie also alle aktuellen Betriebssysteme mit einem Touchscreen verwenden, haben zumindest einige Benutzer das GefĂŒhl, dass sich das Objekt beim Ziehen und Ablegen hinter Ihrem Finger befindet.
Beim Zeichnen mit einem Stift nÀhert sich eine kleine Anzahl von Systemen einer akzeptabel geringen Verzögerung. Die meisten von ihnen sind jedoch viel höher als diese Werte, was von den Benutzern als erhebliche Verzögerung erwartet wird:
Nachfolgend finden Sie die Ergebnisse der Ink & Switch-Tests zur Verzögerung beim Zeichnen mit dem Stift auf dem Tablet fĂŒr verschiedene GerĂ€te. Die durchschnittlichen Verzögerungen, gemessen vom Kontakt mit dem Bildschirm bis zum Beginn der FarbĂ€nderung des entsprechenden Pixels, werden auf die nĂ€chsten 5 ms gerundet.
GerÀt | Das Programm | Verzögerung (ms) |
---|
iPad Pro | Anmerkungen | 20 |
| Goodnotes | 30 |
| Flattern | 35 |
Surface Pro | OneNote | 25 |
| Skizzenblock | 30 |
| Leinwand | 60 |
Pixelbook | Tintenfisch | 40 |
| Leinwand | 60 |
Samsung s3 | Tintenfisch | 60 |
| Flattern | 65 |
| Leinwand | 75 |
| Liveboard | 80 |
Obwohl wir nicht fĂŒr alle GerĂ€te Daten zu Verzögerungen haben, gehen wir davon aus, dass diese mit den oben beobachteten Verzögerungen beim Zeichnen von Stiften vergleichbar sind.
Zeichnen Sie Verzögerungen gegenĂŒber Klickverzögerungen
Wir erwarten, dass diese Verzögerungen vergleichbar sind, da in beiden FĂ€llen die BerĂŒhrungseingabe verwendet wird, dh der Bildschirmaktualisierungszyklus aktiviert wird. Es gibt jedoch einige Unterschiede, sodass es unwahrscheinlich ist, dass die Werte genau gleich sind.Da hier eine Verzögerung von ca. 70 ms erkennbar ist, können die meisten Systeme gut auf Klicks reagieren. Es ist aber auch einfach, Anwendungen zu finden, die viel schlechter funktionieren als die theoretischen FĂ€higkeiten des Systems.
Im Allgemeinen mĂŒssen sensorische Systeme sehr geringe Latenzen aufweisen, damit sie sich ansprechbar fĂŒhlen. Die meisten GerĂ€te und Anwendungen sind nicht in der Lage, dieses Leistungsniveau bereitzustellen, und daher fĂŒhlen sich alle fĂŒr Benutzer in unterschiedlichem MaĂe langsam an.
Tastatur
Es gibt Hinweise darauf, dass eine Erhöhung der Tipplatenz die Benutzererfahrung beeintrÀchtigt.
Effekt der Eingangsverzögerung
In dieser Studie wurden den TastenanschlĂ€gen zufĂ€llige Verzögerungen hinzugefĂŒgt, wodurch die Eingabeleistung verringert wurde. Es wurde jedoch nur ein Bereich von Verzögerungen bewertet. DarĂŒber hinaus schlagen die Autoren der Studie vor, dass erfahrene Schriftsetzer sich an eine erhöhte Latenz anpassen können.Uns sind jedoch keine Studien bekannt, in denen speziell die am wenigsten wahrnehmbaren Eingangsverzögerungen gemessen werden. Die Verzögerung beim DrĂŒcken des Touchscreens (erkennbar bei etwa 70 ms) kann eine nĂŒtzliche Anleitung sein, da sie auch die Zeit zwischen einer diskreten BerĂŒhrung eines Fingers und einer visuellen Aktualisierung des Bildschirms misst.
Im Folgenden finden Sie einige informelle Messungen der End-to-End-Tastaturverzögerung vom Beginn eines Tastenanschlags bis zum Auftreten eines Zeichens auf verschiedenen Computern. Quellen:
âComputerlatenz: 1977â2017â , Ink & Switch-Tests.
Computer | Verzögerung (ms) |
---|
Apple iie | 30 |
Commodore Pet 4016 | 60 |
iMac g4 OS 9 | 70 |
Macbook Pro 2014 | 100 |
Benutzerdefinierte Haswell-e 24Hz | 140 |
Samsung s3 | 150 |
Powerspec g405 Linux | 170 |
Symbolik 3620 | 300 |
Genaue Messungen der Auswirkungen der Tastaturlatenz wĂ€ren ein groĂartiges Experiment fĂŒr abenteuerlustige Forscher. In jedem Fall scheint es wahrscheinlich, dass fĂŒr viele Benutzer der Schwellenwert fĂŒr eine spĂŒrbare Verzögerung beim Eingeben ĂŒber die Tastatur unter 100 ms liegt. Vielleicht viel niedriger.
Eine Maus
Der neueste Typ von EingabegerÀten in unserem Test.
Ein Experiment ergab, dass Benutzer eine Mauslatenz im Bereich von 34 bis 137 ms mit einem Durchschnitt von 65 ms wahrnahmen.
Verschiedene MÀuse haben sehr unterschiedliche Verzögerungswerte. Einige Systeme zeigen Werte von weniger als 10 ms an, indem sie HochleistungsgerÀte mit sorgfÀltiger Programmierung auf niedriger Ebene kombinieren (
dies beschreibt die Installation mit einer Verzögerung von ca. 8 ms). DarĂŒber hinaus können Sie bei einer Kombination aus mittelmĂ€Ăigen GerĂ€ten und Anwendungen, die zusĂ€tzliche Verzögerungen oder Puffer zwischen Maus und Display verursachen, ĂŒber 100 ms hinausgehen.
Anwendungen
Verzögerungen auf Anwendungsebene messen, wie lange es dauert, bestimmte Anwendungsaktionen auszufĂŒhren, z. B. das Laden von Webseiten. Ein Beispiel fĂŒr eine solche Verzögerung ist das Laden der NYTimes-Webseite, was ungefĂ€hr 3000 ms dauert.
Wann scheinen App-Aktionen schnell zu sein? Es ist schwer sicher zu sagen, da ihre Aktionen komplexer und vielfÀltiger sind als die einfache Dateneingabe. Wahrscheinlich hÀngt die Antwort auch von den Erwartungen der Benutzer ab (derzeit arbeiten die Leute normalerweise mit langsamer Software). Aber wir können die ungefÀhre Anzahl berechnen.
Literatur verzögern
Siehe die LiteraturĂŒbersicht ĂŒber die Auswirkungen von Verzögerungen auf Benutzer verschiedener Anwendungen. Dies ist ein guter Ausgangspunkt fĂŒr ein tieferes Eintauchen in das Thema.Einer der Referenzwerte ist eine typische 70-ms-Metrik als die am wenigsten sichtbare Verzögerung, die oben erwĂ€hnt wurde, wenn Sie auf den Bildschirm klicken. Wenn Sie eine Verzögerung zwischen dem Klicken auf einen Link und dem Anzeigen einer Klickanzeige feststellen, sollten Sie eine Ă€hnliche Verzögerung zwischen dem Klicken und dem Ăffnen einer Webseite feststellen.
Eine weitere Referenz ist
das Google RAIL- Entwicklermodell. Obwohl die Autoren dieses Modells ihre Behauptungen in keiner Weise begrĂŒnden, behauptet das Modell, dass sich die Antwort innerhalb von 100 ms âaugenblicklich anfĂŒhltâ und die höhere Verzögerung âdie Verbindung zwischen Aktion und Reaktion unterbrichtâ.
Sie können inoffiziell Ihre eigene Empfindlichkeit im Terminal ĂŒberprĂŒfen. Nehmen Sie Ihre bevorzugten Befehlszeilenprogramme und fĂŒhren Sie sie mit dem Parameter 'time' aus, der die AusfĂŒhrungszeit misst. Beachten Sie sicherlich den Unterschied zwischen den Antworten fĂŒr 15 ms (ausgezeichnet!) Und 500 ms (offensichtlich langsam).

Als letzten Bezugspunkt berĂŒcksichtigen wir, dass eine typische menschliche Reaktionszeit auf einen visuellen Reiz
etwa 220 ms betrÀgt .
Dieser Wert ist viel gröĂer als eine merkliche Verzögerung, da die Reaktion nicht nur die Beobachtung, sondern auch die nachfolgende Aktion umfasst.
Es ist auch notwendig, die
Schlussfolgerungen einiger Forscher zu berĂŒcksichtigen, dass eine Person eine Zunahme der Verzögerung auf unbewusster, physiologischer Ebene wahrnehmen kann.
Echte Anwendungen
Wie passen echte Anwendungen zu diesen Richtlinien? Einige kommen zurecht. Beispielsweise werden viele Unix-Befehlszeilenprogramme schneller als 100 ms ausgefĂŒhrt.
Die meisten Internetanwendungen sind jedoch nicht verfĂŒgbar. Eine Google-Suche in etwa 1000 ms ist viel schneller als die meisten Webanwendungen, aber immer noch merklich langsamer als weniger als 100 ms in der Befehlszeile. Und es ist einfach, Beispiele fĂŒr Seiten zu finden, die selbst bei einer guten Verbindung lĂ€nger als 5000 ms geladen werden.
Bei Mobil- und Desktop-Computern gibt es einige Anwendungen, die durchweg eine Verzögerung von weniger als 100 ms aufweisen, z. B. einen integrierten Rechner unter iOS. Es ist jedoch einfach, Beispiele fĂŒr Anwendungen zu finden, die diesen Schwellenwert bei weitem ĂŒberschreiten, selbst wenn alle Daten lokal verfĂŒgbar sind (oder sein sollten). Betrachten Sie das Slack-Beispiel.
Das folgende Video zeigt, dass das Umschalten zwischen zwei KanÀlen mit geringer LautstÀrke im selben Arbeitsbereich auf dem iPad Pro etwa 220 ms dauert, obwohl keine Netzwerkanrufe erforderlich sind. Das iPad Pro ist wohl das leistungsstÀrkste MobilgerÀt der Welt (Video wird um das Achtfache verlangsamt) ):
Es ist schwierig, fĂŒr alle Programme in einem so umfangreichen Bereich wie der Verzögerung von MaĂnahmen eine allgemeine Schlussfolgerung zu ziehen. Es scheint jedoch offensichtlich, dass einige Anwendungen Aktionen schnell genug ausfĂŒhren und fĂŒr Benutzer augenblicklich erscheinen (weniger als 100 ms), viele Anwendungen jedoch nicht.
Woher kommt die Verlangsamung?
Daher haben wir festgestellt, dass viele Programme tatsÀchlich langsam arbeiten. Wohin geht die ganze Zeit und was können wir optimieren? Betrachten Sie dieses Problem, beginnend mit der ersten Komponente in der Kette: EingabegerÀte.
EingabegerÀt
Der erste Schritt in der Pipeline, der die physischen Eingabedaten in Aktualisierungen auf dem Bildschirm umwandelt, ist die Verarbeitung der Eingabedaten: Umwandlung des Kontakts mit dem Touchscreen, der Tastatur oder der Maus in ein digitales Signal fĂŒr das Betriebssystem. Hier sehen wir uns an, wie lange dieser Schritt dauert.
Beginnen wir mit den Tastaturen. Die Tabelle zeigt die gemessenen Verzögerungen vom Beginn eines Tastenanschlags bis zu einem Signal auf einem USB-Hub, aufgerundet auf 5 ms (
Quelle ).
Tastatur | Verzögerung (ms) |
---|
Apfelzauber | 15 |
Das 3 | 25 |
Kinesis freestyle2 | 30 |
Ergodox | 40 |
Kinesis Vorteil | 50 |
Logitech MK360 | 60 |
Wie Sie sehen können, benötigen diese Tastaturen bereits im ersten Schritt der Verarbeitungspipeline einige zehn Millisekunden Zeit fĂŒr das Budget. Dies ist ab einem Gesamtbudget von 100 ms oder weniger! Dieses Thema wird im Artikel
âDrucken mit VergnĂŒgenâ ausfĂŒhrlicher behandelt.
MĂ€use benötigen ebenfalls mehrere zehn Millisekunden aus dem Budget. Obwohl die leistungsstĂ€rksten Gaming-MĂ€use eine Verzögerung von weniger als 10 ms haben. Die Daten zur Reaktion auf das DrĂŒcken variieren, auch hier zeigen einzelne Instanzen ein Ergebnis von weniger als 10 ms (
Beispiel ).
Bei mobilen GerÀten ist es schwieriger, den Anteil der Verzögerung zu messen, der auf EingabegerÀte fÀllt, da diese eng in andere Hardwarekomponenten integriert sind. Wir können jedoch einige der gÀngigen Muster in der Ausstattung von EingabegerÀten verwenden, um deren Verzögerungen zu bewerten, sowie eigenstÀndige GerÀte.
Abtastrate
Ein hĂ€ufiges Muster ist die Abtastrate. Bei vielen EingabegerĂ€ten werden GerĂ€te in regelmĂ€Ăigen AbstĂ€nden âgescanntâ oder âabgetastetâ. Beispielsweise arbeitet ein typischer Consumer-Touchscreen mit einer Frequenz von 60 Hz, dh er fragt Sensoren ungefĂ€hr alle 17 ms ab. Dies bedeutet, dass im schlimmsten Fall die Verzögerung des EingabegerĂ€ts mindestens 17 ms und im Durchschnitt nicht mehr als 8 ms betrĂ€gt.
Wenn alle Dinge gleich sind, verringert eine höhere Abtastrate die Eingangsverzögerung. Die fortschrittlichen Touchscreens und Stifte von
Apple arbeiten beispielsweise mit Frequenzen ĂŒber 60 Hz (Informationen aus dem
Apple-Dokumentationsarchiv ).
GerÀt | Touchscreen (Hz) | Stift (Hz) |
---|
iPhone 6 | 60 | |
iPhone 7 | 60 | |
iPhone 8 | 60 | |
iPhone X. | 120 | |
iPad Air 2 | 60 | |
iPad Mini 4 | 60 | |
iPad Pro | 120 | 240 |
Eine Ă€hnliche Verzögerungsquelle ist das USB-Polling. Das USB-Protokoll empfĂ€ngt Eingaben von der Tastatur, sodass die Tastatur auf eine USB-Abfrage warten muss, um Informationen zu Klicks zu senden. Die langsame USB-Abfrage lĂ€uft mit 125 Hz und fĂŒhrt die unvermeidlichen max. 8 ms ein. und ~ 4 ms durchschnittliche Verzögerung. SpĂ€tere Versionen des USB-Scans mit einer Frequenz von 1000 Hz oder mehr minimieren den Verzögerungseffekt.
Es gibt viele andere mögliche Verzögerungsquellen bei EingabegerÀten, z. B. Kontaktsprung (weitere Informationen finden Sie im Artikel
âScannen der Tastaturmatrix und Kontaktsprungâ zu den Software- und Hardwareeffekten von Bounce).
Wir werden hier nicht alle diese Nuancen berĂŒcksichtigen, aber wir betonen die wichtigsten: a) EingabegerĂ€te selbst können eine erhebliche Verzögerung verursachen, bevor eine Verarbeitung in der Software erfolgt; b) Dies kann verschiedene diskrete GrĂŒnde haben, und die Verzögerungszeit wird addiert.
Displays und GPUs
Die Hardware am anderen Ende des Förderers sind Displays und Grafikkarten.
Eine Verzögerungsquelle ist hier die Anzeigebildrate. Da Anzeigen nicht stĂ€ndig neu gezeichnet werden können, fĂŒhrt dies zu einer unvermeidlichen Verzögerung, Ă€hnlich wie bei den oben beschriebenen AbfrageeingabegerĂ€ten. Wenn der Bildschirm alle 20 ms aktualisiert wird (z. B.), werden im schlimmsten Fall 20 ms Verzögerung und durchschnittlich 10 ms hinzugefĂŒgt.
Bewegungswahrnehmung
Andere Faktoren beeinflussen unsere Wahrnehmung von Objekten, die sich auf dem Bildschirm bewegen. Blur Busters ist eine hervorragende Ressource zu diesem Thema. Siehe beispielsweise LCD-Bewegungsartefakte 101 .Die meisten Displays arbeiten mit 60 Hz, obwohl professionelle GerÀte und Gaming-Displays mit 120 Hz, 144 Hz und 240 Hz arbeiten. Daher erhöht normalerweise nur die Anzeigebildrate die Verzögerung um durchschnittlich etwa 8 ms, obwohl sie bei Anzeigen mit der höchsten Bildrate auf einige Millisekunden reduziert werden kann.
Ein weiterer Beitrag zur Verzögerung von Anzeigen ist die Zeit, die benötigt wird, um die Farbe der Pixel nach dem Empfang neuer Daten physikalisch zu Àndern. Diese Zeit variiert von einigen Millisekunden in High-End-Gaming-Displays bis zu zweistelligen Werten in weniger reaktionsschnellen LCDs.
Antwortzeit anzeigen
Dieser Parameter ist schwer zu messen, aber einige veranschaulichende Daten sind auf der Notebook Check- Website verfĂŒgbar. Siehe zum Beispiel langsame und schnelle Anzeigen.Bei modernen High-End-GerĂ€ten ist das Display an einen speziellen Grafikprozessor (GPU) angeschlossen. GPUs erstellen eine Reihe von Pixeln fĂŒr die Anzeige, indem sie beispielsweise 2D-Ebenen anordnen oder virtuelle 3D-Szenen rendern. GPUs erzeugen Frames mit einer Geschwindigkeit, die von der GPU-Hardware, der Interaktion mit dem Anwendungs- und Plattformcode und manchmal von der Synchronisationslogik mit Anzeigen abhĂ€ngt.Ein damit verbundenes Problem tritt auf, wenn der Anwendungscode sehr langsam ist und Anweisungen nicht schnell genug an die GPU sendet, um sie vollstĂ€ndig zu nutzen. Dies kann dazu fĂŒhren, dass die GPU eindeutige Frames mit einer geringeren Geschwindigkeit erstellt, als wenn sie tatsĂ€chlich hĂ€ufig Anweisungen von der Anwendung erhalten hĂ€tte. Dies ist eine hĂ€ufige Ursache fĂŒr Verzögerungen, die in 2D-Anwendungen mit weniger als 60 Bildern pro Sekunde auftreten.Lagi
Lagi Typ âjankâ ist schwer in Worten zu beschreiben, aber sie sind leicht zu erkennen. Nathan Gitter definiert sie im Artikel " Designing Jank-Free Apps " als "visuelle AbstĂŒrze, die unerwartet oder ablenkend sind".Loop-Overlay
Wir haben mindestens drei Teile der Pipeline besprochen, bei denen es aufgrund intermittierender AktivitÀten zu Verzögerungen kommt: Eingabe-Scannen, GPU-Rendering-Zyklen und Anzeige-Aktualisierungszyklen. Es ist wichtig zu beachten, dass sie so kombiniert werden können, dass sich im Wesentlichen alle Verzögerungen summieren:
Warten auf mehrere Zyklen. Die hypothetische Verzögerungskaskade zeigt, wie das Warten auf aufeinanderfolgende Hardwarezyklen eine Verzögerung akkumulieren kann. Die gestrichelten vertikalen Linien geben die Zyklen an, die der Förderer erwarten sollte.Um zum nĂ€chsten Schritt in der Pipeline zu gelangen, mĂŒssen wir bis zum nĂ€chsten Zyklus warten. Und Schleifen dĂŒrfen nicht miteinander ausgerichtet sein. Inkonsistente Zyklen und eine ungĂŒnstige anfĂ€ngliche Eingabezeit können eine zusĂ€tzliche Verzögerung von 10 Millisekunden verursachen. Dies ist ein groĂer Betrag im Vergleich zu den oben beschriebenen Verzögerungsbudgets.Laufzeitaufwand
Auf der Softwareseite sind Laufzeitverzögerungen Betriebssystemen und anderem Code inhĂ€rent, der nicht direkt mit der Anwendung zusammenhĂ€ngt. Betrachten Sie zwei wichtige Beispiele: Speicherbereinigung und Zeitplanung.Zuerst kommt die Garbage Collection (GC). GC ist auf den beiden weltweit am hĂ€ufigsten verwendeten Plattformen von entscheidender Bedeutung: Web (JavaScript) und Android (Java).In einigen FĂ€llen kann die Speicherbereinigung zu einer groĂen Verzögerung fĂŒhren, insbesondere im Hinblick auf die Anforderungen an eine geringe Eingangsverzögerung. In JavaScript- oder Java-Umgebungen sind Verzögerungen bei der Speicherbereinigung von etwa 10 ms nicht ĂŒberraschend. Aber das ist das ganze Budget fĂŒr das Ziehen von Objekten auf dem Touchscreen!Die Speicherbereinigung kann nur einen Frame verzögern. Aber wie im Fall von Verzögerungen aufgrund von Bildverlust stören solche Rucke die Benutzer.Es gibt Möglichkeiten, die GC-Verzögerung zu reduzieren. Dazu gehören das Verschieben eines möglichst groĂen Teils der GC-Arbeit auĂerhalb des Hauptthreads und das Optimieren des GC fĂŒr nur wenige separate Pausen. Siehe zum Beispiel die BemĂŒhungen von V8 , so viele SpeicherbereinigungsvorgĂ€nge wie möglich aus dem Mainstream zu entfernen, und die BemĂŒhungen von Go , die GC-Verzögerungen deutlich unter 1 ms zu maximieren.Es gibt eine weitere Option zur Verwendung einer Programmiersprache, die den Komfort von GC teilweise beeintrĂ€chtigt, jedoch eine vorhersehbarere Leistung aufweist. Sprachen wie Swift vermeiden die Verwendung von willkĂŒrlicher Speicherbereinigungautomatische ReferenzzĂ€hlung .Eine weitere potenzielle Overhead-Quelle ist das Betriebssystem-Shedding. Unsere Anwendung (und ihre AbhĂ€ngigkeiten im Betriebssystem) funktioniert nicht unbedingt stĂ€ndig. Andere Programme können fĂŒr den Start geplant werden, wĂ€hrend unsere Programme fĂŒr eine sehr kurze Zeit zwangsweise ausgesetzt werden. Jedes Programm braucht Zeit und die Anzahl der Prozessorkerne ist begrenzt.Das Versandproblem hĂ€ngt mit der CPU-Auslastung zusammen. Wenn Ihre Anwendung ihre Leistungsziele erreicht, jedoch fast 100% der Computerressourcen benötigt, kann dies die Benutzer stören. Der Batterieverbrauch steigt, das GerĂ€t erwĂ€rmt sich und kann mit einem LĂŒfter GerĂ€usche machen. Mit anderen Worten, ceteris paribus, eine geringe CPU-Auslastung ist fĂŒr den Benutzer besser.Absichtliche Verzögerung
Eine typische Ursache fĂŒr Verzögerungen bei mobilen Schnittstellen ist das Design des Betriebssystems selbst und der Anwendungen. Es gibt einige wichtige Wechselwirkungen, die nur durch echte Erwartung erreicht werden können.Android und iOS verwenden hĂ€ufig das "lange DrĂŒcken", um auf das KontextmenĂŒ zuzugreifen. Der Benutzer muss Hunderte von Millisekunden warten, um den Befehl auszufĂŒhren.Damit sind Verzögerungen verbunden, um Unklarheiten zu beseitigen. In Mobile Safari gibt es beispielsweise eine Standardverzögerung von 350 ms zwischen dem Klicken des Benutzers auf den Link und dem Laden einer neuen Seite durch den Browser. Dies ist erforderlich, um den Unterschied zwischen dem Klicken auf einen Link und dem zweimaligen Tippen (Zoomen) zu bestimmen. Einzelheiten zu dieser Verzögerung finden Sie hier .. Es gibt auch Informationen zu den neuesten Ănderungen, mit denen Anwendungsentwickler dieses Problem umgehen können.Feindliche Agenten
Eine hĂ€ufige Verzögerungsquelle fĂŒr Benutzer im Internet sind böswillige AktivitĂ€ten, z. B. AktivitĂ€ts-Tracker, die Benutzeraktionen verfolgen und aufdringliche Anzeigen herunterladen.
Ein Artikel mit 500 Wörtern auf der Website der Washington Post erfordert ungefĂ€hr hundert HTTP-Anforderungen und das Laden dauert ungefĂ€hr 4400 ms. FĂŒr Tracker und Anzeigen werden viele Abfragen benötigt. Ein kleiner Teil davon wird gezeigt.Es gibt viele wunderbare Artikel ĂŒber die Adipositas im Web: siehe The Bullshit Web , âDie Krise der Adipositas-Websitesâ , Web Bloat und andere. Wirbetonen lediglich, dass die gröĂte Verzögerungsquelle auf vielen Websites darin besteht, alle Arten von Unsinn gegen den Willen der Benutzer herunterzuladen.Anwendungscode
Die letzte Quelle der Verzögerung, die wir erwĂ€hnen, ist vielleicht die offensichtlichste: Dies ist die Anwendung selbst. Wenn eine Anwendung viel Prozessorzeit damit verbringt, Eingaben zu verarbeiten oder eine Aktion auszufĂŒhren, ist sie langsam.Alles zusammenfĂŒgen
Betrachten Sie das Beispiel, aus dem sich die Gesamtverzögerung zusammensetzt: Ein
hypothetisches Beispiel fĂŒr die Ende-zu-Ende-Verzögerung von der Eingabe bis zur Anzeige auf dem Bildschirm. Die gestrichelten vertikalen Linien geben die Zyklen an, die der Förderer erwarten sollte.Das obige Beispiel ist hypothetisch, aber bezeichnend. Es zeigt, wie viele Ebenen Verzögerung hinzufĂŒgen, sodass die Anwendung sehr langsam sein kann, selbst wenn sie mit voller Bildrate ausgefĂŒhrt wird.Zu schnelle Software
Ein Deep Technology Stack ist dafĂŒr verantwortlich, auf eine moderne Computerschnittstelle mit Benutzeraktionen zu reagieren. Selbst ein einfacher Tastendruck auf der Tastatur und das Erscheinen des entsprechenden Zeichens im Eingabetextfeld durchlaufen eine lange, komplexe Abfolge von Schritten: vom Scannen der Tastatur ĂŒber die Verarbeitungsebenen des Betriebssystems und des Frameworks bis hin zum Rendern der Grafikkarte und der Aktualisierungsrate der Anzeige.Es gibt einen Grund fĂŒr diese KomplexitĂ€t, und dennoch sind wir traurig, dass Computerbenutzer, die so oft versuchen, produktiv zu arbeiten, warten, das Sanduhrsymbol beobachten und das GefĂŒhl haben, dass ihre GerĂ€te einfach nicht mithalten können.Wir glauben, dass schnelle Software Benutzer befĂ€higt und sie produktiver macht. Wir wissen, dass die heutige Software Benutzer hĂ€ufig ausfĂ€llt, langsam ist, und wir möchten die Situation verbessern. Wir hoffen, dass dieses Material Ihnen bei der Arbeit an Ihrer eigenen Software hilfreich sein wird.Literatur
1. Endo, Wang, Chen, Seltzer. "Verzögerung der Effizienz eines interaktiven Systems" , Proceedings of the USENIX 2nd Symposium on Operating Systems Design and Implementation , 1996.2. Ng, Annette, Ditz, Gupta, Bischoff. âIn kĂŒrzester Zeit: Wahrnehmung Verzögerung Studie die Interaktion mit einem Stift» , Proceedings der 32. Jahres ACM Conference on Human Factors in Computing Systems , 2014.3. Ng Lepinsk, Vigdor, Sanders, Dietz. âEntwicklung von GerĂ€ten mit direkter BerĂŒhrungseingabe mit geringer Latenzâ , Tagungsband des 25. jĂ€hrlichen ACM-Symposiums fĂŒr Software und Technologie fĂŒr BenutzeroberflĂ€chen , 2012.4. Deber, Jota, Forlays, Wigdor.âWelche Geschwindigkeit ist genug? Die Wahrnehmung der Verzögerung durch den Benutzer und ihre Verbesserung der direkten und indirekten BerĂŒhrungsschnittstellen â , Bericht der 33. jĂ€hrlichen ACM-Konferenz ĂŒber Human Factors in Computersystemen , 2015.5. Annette, Ng, Ditz, Bischof, Gupta. âAuf welches Niveau sollte man gehen? Die Verzögerungswahrnehmung des Zeichnens verstehen â , Proceedings of Graphics Interface 2014 , 2014.6. Forch, Franke, Rauch, Krems. "Sind 100 ms genug?" Charakterisierung der Schwellenwahrnehmung von Verzögerungen bei der Interaktion mit der Maus â , Technische Psychologie und kognitive Ergonomie: Kognition und Design , 2017.7. Dabrowski, Manson.«40 » ,
Interacting with Computers , 2011.
8. -, , , , .
« » ,
38th International ACM SIGIR Conference on Research and Development in Information Retrieval , 2015.