Ein flüssiges Scrollverhalten ist für das Surfen auf dem Smartphone sicherlich sehr wichtig. Google hat laut eigenen Aussagen in den letzten drei Jahren intensiv an der Performance von Chrome unter Android gearbeitet und konnte nach eigener Aussage die Häufigkeit von sogenannten „Scroll-Janks“, also spürbaren Rucklern und Verzögerungen beim Scrollen, um 48 Prozent reduzieren.
In einem ausführlichen Einblick erklären die Chrome-Entwickler die Hürden des Multi-Prozess-Modells. Während klassische Android-Apps meist in einem einzigen Thread laufen, verteilt Chrome Aufgaben auf verschiedene Prozesse (Browser, Renderer, GPU). Kommt es an einer Stelle zu einer minimalen Verzögerung, verpasst Chrome das Zeitfenster für die Bildwiederholrate (etwa 16,7 Millisekunden bei 60 Hz), was vom menschlichen Auge sofort als Stottern wahrgenommen wird.
Um das Problem an der Wurzel zu packen, hat Google das hauseigene Analyse-Tool Perfetto genutzt und mittels automatisierter SQL-Abfragen („PerfettoSQL“) die genauen Ursachen für verpasste Frames identifiziert. Daraus entstanden mehrere architektonische Umbauprojekte. Google beschreibt es wie folgt:
- Input Vizard: Eingaben vom Touchscreen liefen zuvor über den vielbeschäftigten Browser-Main-Thread. Zusammen mit dem Android-Team wurden Eingabe-Events und VSync-Signale direkt an den Viz-Compositor-Thread im GPU-Prozess umgeleitet, um Blockaden durch andere Aufgaben zu verhindern.
- Input Framer: Wenn Eingabe-Signale unregelmäßig eintreffen, wartet der Renderer-Prozess nun bis zu ein Drittel des Bildwiederholzyklus auf kommende Touch-Eingaben, anstatt leere oder alte Frames anzuzeigen.
- Input Prediction: Fehlen Eingabesignale gänzlich, sagt Chrome die wahrscheinliche Scroll-Position anhand bisheriger Bewegungen voraus und generiert einen synthetischen Frame.
- Direct2Thread: Die Kommunikation zwischen den Prozessen wurde vereinfacht. Anstatt Nachrichten über Zwischen-Threads (IO-Threads) zu schicken, kommunizieren die Prozesse nun auf direktem Weg, was Latenzen minimiert.
- Browser-Controls in Viz: Beim Herunterscrollen blendet sich die Adressleiste aus. Diese Synchronisation übernimmt nun direkt der GPU-Prozess über Screenshots der Steuerelemente, ohne den Hauptprozess belasten zu müssen.
Die Optimierungen sind das Ergebnis kontinuierlicher A/B-Tests zwischen 2023 und 2026. Das Entwicklerteam kündigte bereits an, die Pipeline auch künftig weiter zu optimieren, um die Latenzen auf Android-Geräten weiter zu drücken. Ist euch das Scrollverhalten in Chrome auf eurem Smartphone in letzter Zeit bereits flüssiger aufgefallen?
Hinweis: Dieser Artikel enthält Affiliate-Links. Kauft ihr darüber ein, erhalten wir eine kleine Provision – ohne Aufpreis für euch und ohne Einfluss auf unsere redaktionelle Meinung.
