Geschwindigkeit ist eine der wenigen Produkteigenschaften, die der Nutzer spürt, bevor er sie erklären kann. Niemand öffnet eine Website und denkt „die Latenz hier ist hoch“. Die Leute haben einfach das Gefühl, dass etwas langsam ist, sie werden ungeduldig und gehen. Die Latenz ist unsichtbar, bis sie zur Verlassenheit wird.
Für diejenigen, die anfangen, sich mit der Web-Performance zu befassen, besteht die erste Verwirrung darin, dass Latenz als Synonym für „langsames Internet“ betrachtet wird. Das ist es nicht. Latenz ist die Zeit zwischen einer Aktion und der Reaktion auf diese Aktion und entsteht durch eine Kette von Faktoren, die weit über die Verbindung des Benutzers hinausgehen. Das Verständnis dieser Kette unterscheidet diejenigen, die Optimierungen initiieren, von denen, die das Problem an der Quelle lösen.
Dieser Text ist eine Basis. Das Ziel besteht nicht darin, Rezepte zu liefern, sondern Ihnen das Vokabular und das mentale Modell zu vermitteln, mit dem Sie klar über die Latenz nachdenken können, denn ohne zu verstehen, woher sie kommt, wird jede Optimierung zu Versuch und Irrtum.
Was ist eigentlich Latenz?
Latenz ist Wartezeit. Wenn jemand auf eine Schaltfläche klickt und etwas auf dem Server passieren muss, gibt es eine Verzögerung zwischen dem Klick und der sichtbaren Reaktion. Dieses Intervall ist die wahrgenommene Latenz und die Summe mehrerer kleinerer Zeiten.
Es ist sinnvoll, Latenz und Durchsatz zu trennen, zwei Konzepte, die oft verwechselt werden. Die Latenz gibt an, wie lange eine einzelne Anfrage dauert. Der Durchsatz gibt an, wie viele Anfragen das System pro Sekunde verarbeiten kann. Sie können gleichzeitig über ein System mit hohem Durchsatz und hoher Latenz verfügen. Es dient vielen Menschen, aber alle warten. Was für den einzelnen Benutzer zählt, ist die Latenz. Für die Operation ist beides wichtig.
Die zentrale These dieses Textes: Latenz ist eine Summe von Schritten, und man verbessert nur das, was man sehen kann. Jeder, der Latenz als eine einzelne, undurchsichtige Zahl behandelt, bleibt bei generischen Optimierungen hängen. Wer die Kette durchbricht, entdeckt, wo wirklich Zeit verloren geht.
Woher kommt die Latenz?
Stellen Sie sich den Weg einer typischen Anfrage vor, vom Klick des Benutzers bis zur Antwort auf dem Bildschirm. Jeder Abschnitt dieses Weges verlängert die Zeit.
Es herrscht physische Distanz. Informationen werden mit endlicher Geschwindigkeit über das Netzwerk übertragen, und die Entfernung zwischen dem Benutzer und dem Server spielt eine Rolle. Ein Server auf einem anderen Kontinent fügt allein für den Hin- und Rückweg vor der Verarbeitung mehrere zehn Millisekunden hinzu. Für eine brasilianische Bevölkerung, die über eine weit entfernte Infrastruktur verfügt, ist dies ein echter Teil des Problems.
Es erfolgt der Verbindungsaufbau. Das Öffnen einer sicheren Verbindung erfordert eine anfängliche Aushandlung zwischen Client und Server, die Hin- und Rückfahrten durch das Netzwerk kostet. Umgewidmete Verbindungen zahlen diese Kosten einmal; Neue Verbindungen zahlen sich jedes Mal aus.
Es findet eine Verarbeitung auf dem Server statt. Die Zeit, die die Anwendung benötigt, um die Anfrage zu verstehen, Datenbanken abzufragen, die Geschäftslogik auszuführen und die Antwort zusammenzustellen. Hier entsteht ein Großteil der Latenz, die Teams direkt steuern können.
Es erfolgt eine Datenabfrage. Die Datenbank ist oft der größte versteckte Bösewicht. Eine schlecht indizierte Abfrage, ein Aufruf, der Dutzende anderer Abfragen hintereinander auslöst, ein langsamer externer Dienst in der Kette – all das macht aus einer schnellen Antwort ein Warten.
Und es gibt In-Browser-Rendering. Selbst nachdem die Antwort eintrifft, muss der Browser sie verarbeiten und den Bildschirm zeichnen. Starkes JavaScript, blockierende Ressourcen und große Bilder verlängern die Zeit im letzten Abschnitt, genau dort, wo der Benutzer hinschaut.
Warum das für das Geschäft wichtig ist
Es ist verlockend, Latenz nur als technisches Problem zu betrachten. Es ist ein Managementfehler. Latenz hat einen direkten Einfluss auf Konvertierung, Beibehaltung und Qualitätswahrnehmung. Langsame Anwendungen werden abgebrochen, und beim Abbruch ist keine Erlaubnis erforderlich.
Stellen Sie sich ein Portal für öffentliche Dienstleistungen vor. Der Bürger, der versucht, ein Duplikat auszustellen, einen Termin zu vereinbaren oder eine Sozialleistung zu konsultieren, hat nicht die unendliche Geduld und greift oft über ein Mobiltelefon mit einer bescheidenen Verbindung darauf zu. Wenn jeder Schritt Zeit braucht, sinkt die Abschlussquote, der persönliche Service nimmt zu und die Wahrnehmung, dass „das Regierungssystem nicht funktioniert“, verstärkt sich. Latenz ist in diesem Fall ein Hindernis für den Zugriff auf ein Recht.
Bei privaten Produkten ist die Logik unter einem anderen Namen dieselbe: Mit jeder Sekunde des Wartens geht Geld raus. Aus diesem Grund sollte die Latenz kein Problem sein, das nur auftritt, wenn sich der Benutzer beschwert. Es sollte ein Indikator sein, der so überwacht werden sollte, wie man den Umsatz überwachen würde.
Vor der Optimierung messen
Der häufigste Fehler, den diejenigen machen, die sich mit Latenz beschäftigen, besteht darin, vor der Messung mit der Optimierung zu beginnen. Sie fügen hier einen Cache hinzu, schreiben dort eine Funktion neu, alles intuitiv, und das Ergebnis ist ein verstreuter Aufwand ohne klare Auswirkungen.
Die richtige Disziplin ist das Gegenteil. Messen Sie zunächst, wo Zeit verloren geht, und greifen Sie dann den größten Engpass an. Die Latenz folgt normalerweise einer ungleichmäßigen Verteilung: Ein einzelner Schritt kann den größten Teil der Gesamtzeit ausmachen. Andere zu optimieren ist Verschwendung.
Es lohnt sich auch, nicht nur den Durchschnitt, sondern auch die schlimmsten Fälle zu betrachten. Die durchschnittliche Latenz scheint groß zu sein, während ein relevanter Teil der Benutzer mit langen Wartezeiten zu kämpfen hat. Es sind genau diese Benutzer, die im schlechten Perzentil liegen, die aufgeben und sich beschweren. Ein guter Durchschnitt kann für viele Menschen eine schreckliche Erfahrung verbergen.
Die Falle, das Unsichtbare zu optimieren
Auf der anderen Seite der Leistungsbegeisterung besteht ein Risiko: die Optimierung dessen, was unwichtig ist. Begeisterte Teams verbringen Wochen damit, Millisekunden an einem Teil einzusparen, den der Benutzer nie bemerkt, während die größte Wartezeit intakt bleibt.
Leistung ist immer eine Frage des Verhältnisses. Das Reduzieren eines Schritts, der nur einen geringen Teil der Gesamtzeit ausmacht, ändert nichts am Erlebnis. Reife liegt darin, der Versuchung einer eleganten Optimierung zu widerstehen und zunächst zu fragen, ob sie die Zahl bewegt, die der Benutzer empfindet.
Eine weitere Gefahr besteht darin, die Latenz als ein Problem zu betrachten, das nach einer Reihe von Verbesserungen gelöst wurde. Systeme entwickeln sich weiter, Daten wachsen, neue Funktionen fügen Anrufe hinzu. Die Latenz steigt wieder, wenn niemand hinschaut. Es handelt sich um einen Indikator, der kontinuierlich überwacht werden muss, und nicht um eine Aufgabe, die von der Liste gestrichen werden muss.
Schließung
Latenz ist die unsichtbare Steuer, die jede Webanwendung zahlt, und der Benutzer ist derjenige, der die Rechnung trägt. Das Verständnis seiner Grundlagen, dass es sich um eine Summe von Schritten handelt, dass es vor der Optimierung gemessen wird, dass es für das Unternehmen genauso wichtig ist wie für die Technik, ist der erste Schritt zur Entwicklung von Produkten, die Menschen nicht aus Ungeduld aufgeben.
Geschwindigkeit ist weder ein Luxus noch ein technisches Detail. Es ist Teil des Versprechens, das Ihr Produkt gibt. Wer Leistung als Produktentscheidung und nicht als Anpassung in letzter Minute betrachtet, liefert Erlebnisse, die die Zeit derjenigen auf der anderen Seite des Bildschirms respektieren.
Wenn Sie beginnen, die Leistung Ihrer Anwendung ernsthafter zu betrachten, lohnt es sich, dies von Anfang an mit einer Messung zu tun. Hier im Blog gibt es weitere Artikel zum Thema Architektur und Skalierbarkeit, die tiefer in das Thema einsteigen.
Lesen Sie auch
- Latenz in Webanwendungen reduzieren: Eine Kurzanleitung zur Beseitigung der richtigen Engpässe
- Progressive Web Apps für Einsteiger: Beispiele und Optimierung ohne Komplikationen
- PWA: Was es ist und wie man sich täglich um die Leistung kümmert
- Automatisiertes Testen: Architektur und Grundlagen
- Edge Computing: Warum verteilte Verarbeitung Ihre Architektur neu definieren wird
- Edge Computing-Architektur: Strategien für die verteilte Verarbeitung
