Výsledky optimalizace Chromia realizované projektem RenderingNG

Vývojáři Chromia shrnuli první výsledky osm let trvajícího projektu RenderingNG, který se zaměřil na stálou práci na zvyšování výkonu, spolehlivosti a rozšiřitelnosti Chrome.

Například optimalizace přidané ve verzi Chrome 94 ve srovnání s Chrome 93 umožnily snížit zpoždění při zpracování stránek o 8 % a zvýšit čas provozu na baterii o 0,5 %. Vzhledem k velikosti uživatelské základny Chromia se tyto hodnoty v globálním měřítku promítají do úspory více než 1400 let procesorového času každý den. Ve srovnání s verzemi minulých let moderní Chrome vykresluje grafiku rychleji o více než 150 % a je šestkrát méně náchylný k pádům v GPU ovladačích na problematickém hardwaru.

Mezi realizovanými metodami, které umožňují dosáhnout nárůstu výkonu, se uvádí paralelizace operací rastrizace různých pixelů na straně GPU a aktivnější rozložení zpracovatelů na různá jádra CPU (provádění JavaScriptu, zpracování posouvání stránky, dekódování videa a obrázků, předběžné vykreslení obsahu). Omezujícím faktorem při aktivní paralelizaci je nárůst zátěže na CPU, který se projevuje vzrůstající teplotou a zvyšující se spotřebou energie, proto je důležité dosáhnout optimálního vyvážení mezi výkonem a spotřebou energie. Například při práci na baterii je možné obětovat rychlost vykreslení, ale nelze obětovat zpracování posouvání v samostatném vlákně, protože snížení citlivosti rozhraní bude uživateli patrné.

Technologie realizované v rámci projektu RenderingNG zcela mění přístup k kompozici a umožňují adaptivně využívat různé technologie optimalizace výpočtů na GPU a CPU v souvislosti s jednotlivými částmi stránek, beroucí v úvahu takové faktory jako rozlišení a obnovovací frekvenci obrazovky, stejně jako dostupnost pokročilých grafických API, jako jsou Vulkan, D3D12 a Metal. Mezi příklady optimalizací se uvádí aktivní využívání mezipaměti textur GPU a výsledků vykreslování částí webových stránek, a také zohlednění pouze oblasti stránky viditelné uživateli (nemá smysl vykreslovat části stránky zakryté jiným obsahem).

Důležitým prvkem RenderingNG je také izolace výkonu při zpracování různých částí stránek, například pro izolaci výpočtů souvisejících s zobrazováním reklamy v blocích iframe, zobrazováním animací, přehráváním zvuku a videa, posouváním obsahu a prováděním JavaScriptu.

Výsledky optimalizace Chromia realizované projektem RenderingNG

Realizované techniky optimalizace:

  • V Chrome 94 byl navržen mechanismus CompositeAfterPaint, který zajišťuje kompozici odděleně vykreslených částí webových stránek a umožňuje dynamicky škálovat zátěž na GPU. Podle údajů získaných od uživatelů sběrem telemetrie nový systém kompozice umožnil snížit prodlevy při posouvání o 8%, zvýšit reakční dobu interakcí s uživateli o 3%, zvýšit rychlost vykreslování o 3%, snížit spotřebu paměti GPU o 3% a prodloužit dobu provozu na baterii o 0,5%.
  • GPU Raster — mechanismus rastrování na straně GPU, byl zaveden pro všechny platformy v roce 2020 a umožnil urychlit průchod testy MotionMark v průměru o 37%, a u kategorii souvisejících s HTML o 150%. V tomto roce byl GPU Raster doplněn možností využití akcelerace na straně GPU pro vykreslování prvků Canvas, což vedlo k urychlení vykreslování obrysů o 1000%, a průchodu testy MotionMark 1.2 o 130%.
  • LayoutNG — kompletní přepracování algoritmů rozložení prvků stránek, zaměřené na zvýšení spolehlivosti a předvídatelnosti. Projekt plánují zpřístupnit uživatelům v tomto roce.
  • BlinkNG — refaktoring a čištění motoru Blink s oddělením vykreslovacích operací do samostatně vykonávaných fází pro zvýšení efektivity cache a zjednodušení odloženého vykreslování s ohledem na viditelnost objektů v okně. Práce by měla být dokončena letos.
  • Přenos zpracovávacích toků pro scrollování, animace a dekódování obrázků do samostatných vláken. Projekt se vyvíjí od roku 2011 a tento rok dosáhl možnosti přenosu animovaných CSS transformací a SVG animací do samostatných vláken.
  • VideoNG — efektivní a spolehlivý motor 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. Předtím byla přidána podpora HDR.
  • Viz — samostatné procesy pro rastrování (OOP-R — Out-of-process Raster) a vykreslování (OOP-D — Out of process display compositor), oddělující vykreslování uživatelského rozhraní prohlížeče od vykreslování obsahu stránek. Projektem se také vyvíjí proces SkiaRenderer, který využívá specifické grafické API pro různé platformy (Vulkan, D3D12, Metal). Změna umožnila snížit počet pádů způsobených problémy v grafických ovladačích o 6krát.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster