Výsledky optimalizace Chromium implementované projektem RenderingNG

Vývojáři Chromium shrnuli první výsledky projektu RenderingNG, který byl spuštěn před 8 lety a jehož cílem je pokračující práce na zvýšení výkonu, spolehlivosti a rozšiřitelnosti prohlížeče Chrome.

Například optimalizace přidané v Chrome 94 ve srovnání s Chrome 93 vedly k 8% snížení latence vykreslování stránek a 0.5% prodloužení výdrže baterie. Na základě velikosti uživatelské základny Chrome to představuje globální úsporu více než 1400 150 let procesorového času každý den. Ve srovnání s předchozími verzemi moderní Chrome vykresluje grafiku o více než 6 % rychleji a je XNUMXkrát méně náchylný na pády ovladačů GPU na problematickém hardwaru.

Mezi implementovanými metodami k dosažení nárůstu výkonu jsme zaznamenali paralelizaci operací rasterizace různých pixelů na straně GPU a aktivnější distribuci procesorů mezi různá jádra CPU (provádění JavaScriptu, zpracování rolování stránek, dekódování videí a obrázků, proaktivní vykreslování obsah). Limitujícím faktorem pro aktivní paralelizaci je zvyšující se zátěž CPU, která se projevuje rostoucími teplotami a zvýšenou spotřebou, proto je důležité dosáhnout optimální rovnováhy mezi výkonem a spotřebou. Například při provozu na baterii můžete obětovat rychlost vykreslování, ale nemůžete obětovat zpracování rolování v samostatném vláknu, protože snížení odezvy rozhraní bude pro uživatele patrné.

Technologie implementované v rámci projektu RenderingNG zcela mění přístup ke skládání a umožňují adaptivně využívat různé technologie pro optimalizaci výpočtů na GPU a CPU ve vztahu k jednotlivým částem stránek s přihlédnutím k takovým vlastnostem, jako je rozlišení obrazovky a obnovovací frekvence. , stejně jako přítomnost v systému podpory pokročilých grafických API, jako jsou Vulkan, D3D12 a Metal. Příklady optimalizací zahrnují aktivní použití ukládání textur GPU do mezipaměti a výsledků vykreslování částí webových stránek, stejně jako zohlednění pouze oblasti stránky viditelné pro uživatele při vykreslování (nemá smysl vykreslovat části stránky. stránky, které jsou pokryty jiným obsahem).

Důležitým prvkem RenderingNG je také izolovat výkon při zpracování různých částí stránek, například izolovat výpočty spojené se zobrazováním reklam v prvcích iframe, zobrazováním animací, přehráváním zvuku a videa, posouváním obsahu a spouštěním JavaScriptu.

Výsledky optimalizace Chromium implementované projektem RenderingNG

Implementované optimalizační techniky:

  • Chrome 94 nabízí mechanismus CompositeAfterPaint, který poskytuje skládání samostatně vykreslených částí webových stránek a umožňuje dynamicky škálovat zatížení GPU. Podle uživatelských telemetrických dat nový kompoziční systém snížil latenci rolování o 8 %, zvýšil odezvu uživatele o 3 %, zvýšil rychlost vykreslování o 3 %, snížil spotřebu paměti GPU o 3 % a prodloužil výdrž baterie o 0.5 %.
  • GPU Raster, rasterizační engine na straně GPU, byl představen na všech platformách v roce 2020 a zrychlil benchmarky MotionMark v průměru o 37 % a benchmarky související s HTML o 150 %. V letošním roce byl GPU Raster vylepšen o možnost využívat akceleraci na straně GPU k vykreslování prvků Canvas, což má za následek o 1000 % rychlejší vykreslování obrysů a o 1.2 % rychlejší benchmarky MotionMark 130.
  • LayoutNG je kompletní přepracování algoritmů rozvržení prvků stránky zaměřené na zvýšení spolehlivosti a předvídatelnosti. Projekt má být uživatelům zpřístupněn v letošním roce.
  • BlinkNG - refaktorování a čištění enginu Blink, rozdělení vykreslovacích operací do samostatně prováděných fází pro zlepšení efektivity ukládání do mezipaměti a zjednodušení líného vykreslování s přihlédnutím k viditelnosti objektů v okně. Dokončení prací je naplánováno na letošní rok.
  • Přesunutí posouvání, animace a dekódování obrázků do samostatných vláken. Projekt se vyvíjí od roku 2011 a letos dosáhl možnosti exportovat animované CSS transformace a SVG animace do samostatných vláken.
  • VideoNG je efektivní a spolehlivý engine pro přehrávání videa na webových stránkách. Letos byla implementována možnost zobrazení chráněného obsahu v rozlišení 4K. Dříve byla přidána podpora HDR.
  • Viz - samostatné procesy pro rasterizaci (OOP-R - Out-of-process Raster) a rendering (OOP-D - Out of process display comppositor), oddělující vykreslování rozhraní prohlížeče od vykreslování obsahu stránky. Projekt také vyvíjí proces SkiaRenderer, který využívá grafická API specifická pro platformu (Vulkan, D3D12, Metal). Změna umožnila 6x snížit počet pádů kvůli problémům s ovladači grafiky.

Zdroj: opennet.ru

Přidat komentář