Optimierungsergebnisse von Chromium, die durch das Projekt RenderingNG umgesetzt wurden

Die Entwickler von Chromium haben die ersten Ergebnisse des vor 8 Jahren gestarteten Projekts RenderingNG vorgestellt, das darauf abzielt, die Leistung, ZuverlÀssigkeit und Skalierbarkeit von Chrome kontinuierlich zu verbessern.

Die im Release von Chrome 94 eingefĂŒhrten Optimierungen im Vergleich zu Chrome 93 haben beispielsweise die Verzögerungen bei der Seitenverarbeitung um 8 % reduziert und die Akkulaufzeit um 0,5 % verlĂ€ngert. BerĂŒcksichtigt man die GrĂ¶ĂŸe der Chrome-Nutzerbasis, entspricht dies global einer Ersparnis von ĂŒber 1400 Jahren Rechenzeit tĂ€glich. Im Vergleich zu Vorjahresversionen rendert der aktuelle Chrome Grafiken mehr als 150 % schneller und stĂŒrzt auf problematischer Hardware 6 Mal seltener aufgrund von GPU-Treiberfehlern ab.

Zu den umgesetzten Methoden zur Leistungssteigerung gehört das Parallelschalten von Rasteroperationen verschiedener Pixel auf der GPU und eine aktivere Verteilung der Aufgaben auf verschiedene CPU-Kerne (z. B. AusfĂŒhrung von JavaScript, Bearbeitung des Seiten-Scrollings, Dekodierung von Videos und Bildern sowie Vorab-Rendering von Inhalten). Ein begrenzender Faktor beim aktiven Parallelschalten ist die steigende CPU-Belastung, die sich durch einen Anstieg der Temperaturen und einen höheren Energieverbrauch Ă€ußert. Daher ist es wichtig, ein optimales Gleichgewicht zwischen Leistung und Energieverbrauch zu erreichen. Zum Beispiel kann bei Betrieb ĂŒber den Akku auf die Rendering-Geschwindigkeit verzichtet werden, jedoch darf die Verarbeitung des Scrollens in einem separaten Thread nicht beeintrĂ€chtigt werden, da eine Verringerung der ReaktionsfĂ€higkeit der BenutzeroberflĂ€che fĂŒr den Nutzer spĂŒrbar wird.

Die im Rahmen des Projekts RenderingNG entwickelten Technologien revolutionieren den Ansatz im Compositing und ermöglichen eine adaptive Nutzung verschiedener Optimierungstechnologien fĂŒr Berechnungen auf GPU und CPU, die auf bestimmte Teile der Seiten abgestimmt sind. Dabei werden Aspekte wie Bildschirmauflösung und Bildwiederholfrequenz sowie die UnterstĂŒtzung fortschrittlicher Grafik-APIs wie Vulkan, D3D12 und Metal in Betracht gezogen. Zu den Optimierungsbeispielen gehört die aktive Nutzung von GPU-Textur-Caching und der Ergebnisse des Renderns von Teilen von Webseiten, sowie die BerĂŒcksichtigung beim Rendern nur der Bereiche der Seite, die fĂŒr den Benutzer sichtbar sind (es hat keinen Sinn, Teile der Seite zu rendern, die von anderem Inhalt ĂŒberdeckt werden).

Ein wichtiger Bestandteil von RenderingNG ist auch die Isolierung der Leistung bei der Verarbeitung verschiedener Teile von Seiten, beispielsweise zur Isolierung von Berechnungen, die mit der Anzeige von Werbung in iframe-Blöcken, mit Animationen, der Wiedergabe von Audio und Video, dem Scrollen von Inhalten und der AusfĂŒhrung von JavaScript verbunden sind.

Optimierungsergebnisse von Chromium, die durch das Projekt RenderingNG umgesetzt wurden

DurchgefĂŒhrte Optimierungstechniken:

  • In Chrome 94 wurde der Mechanismus CompositeAfterPaint eingefĂŒhrt, der das Kompositing von separat gerenderten Teilen von Webseiten ermöglicht und eine dynamische Skalierung der GPU-Belastung erlaubt. Laut den von Nutzern gesammelten Telemetriedaten konnte durch die neue Kompositing-Technologie die Verzögerung beim Scrollen um 8 % gesenkt, die Nutzerinteraktion um 3 % reaktionsfĂ€higer gestaltet, die Rendergeschwindigkeit um 3 % erhöht, der GPU-Speicherverbrauch um 3 % verringert und die Akkulaufzeit um 0,5 % verlĂ€ngert werden.
  • GPU Raster – ein Mechanismus zur Rasterisierung auf der GPU-Seite, wurde 2020 fĂŒr alle Plattformen eingefĂŒhrt und hat die Performance in den MotionMark-Tests im Durchschnitt um 37 % gesteigert, wĂ€hrend die Kategorien, die mit HTML zusammenhĂ€ngen, sogar um 150 % verbessert wurden. In diesem Jahr wurde GPU Raster um die Möglichkeit erweitert, GPU-Beschleunigung fĂŒr das Rendern von Canvas-Elementen zu nutzen, was zu einer Beschleunigung der Konturenschnelligkeit um 1000 % und einer Verbesserung der MotionMark 1.2-Testergebnisse um 130 % fĂŒhrte.
  • LayoutNG – eine komplette Überarbeitung der Algorithmen zur Anordnung von Seitenelementen, die darauf abzielt, die ZuverlĂ€ssigkeit und Vorhersagbarkeit zu erhöhen. Das Projekt soll in diesem Jahr an die Nutzer ausgegeben werden.
  • BlinkNG — Refactoring und Optimierung der Blink-Engine mit der Trennung von Rendering-Operationen in separaten Phasen, um die Cache-Effizienz zu steigern und das verzögerte Rendering unter BerĂŒcksichtigung der Sichtbarkeit der Objekte im Fenster zu erleichtern. Die Arbeiten sollen in diesem Jahr abgeschlossen werden.
  • Auslagerung von Scroll-, Animations- und Bilddekodierungsprozessen in separate Threads. Das Projekt ist seit 2011 in Entwicklung und hat in diesem Jahr die Möglichkeit erreicht, animierte CSS-Transformationen und SVG-Animationen in separate Threads auszulagern.
  • VideoNG — eine effiziente und zuverlĂ€ssige Engine fĂŒr die Videowiedergabe auf Webseiten. In diesem Jahr wurde die UnterstĂŒtzung fĂŒr die Anzeige von geschĂŒtztem Content in 4K-Auflösung umgesetzt. Zuvor wurde die HDR-UnterstĂŒtzung hinzugefĂŒgt.
  • Viz — separate Prozesse fĂŒr Rasterisierung (OOP-R — Out-of-process Raster) und Rendering (OOP-D — Out of process display compositor), die das Rendering der BenutzeroberflĂ€che des Browsers vom Rendering des Seiteninhalts trennen. Im Rahmen des Projekts wird auch der SkiaRenderer entwickelt, der plattformspezifische Grafik-APIs (Vulkan, D3D12, Metal) nutzt. Diese Änderung hat die Anzahl der AbstĂŒrze aufgrund von Problemen mit Grafiktreibern um den Faktor 6 reduziert.

Quelle: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster