Výsledky optimalizácie prehliadača Chromium implementované projektom RenderingNG

Vývojári prehliadača Chromium zhrnuli prvé výsledky projektu RenderingNG, ktorý bol spustený pred 8 rokmi a ktorého cieľom je neustála práca na zvýšení výkonu, spoľahlivosti a rozšíriteľnosti prehliadača Chrome.

Napríklad optimalizácie pridané v prehliadači Chrome 94 v porovnaní s prehliadačom Chrome 93 viedli k zníženiu latencie vykresľovania stránok o 8 % a k zvýšeniu výdrže batérie o 0.5 %. Na základe veľkosti používateľskej základne prehliadača Chrome to predstavuje globálnu úsporu viac ako 1400 150 rokov procesorového času každý deň. V porovnaní s predchádzajúcimi verziami moderný Chrome vykresľuje grafiku o viac ako 6 % rýchlejšie a je XNUMX-krát menej náchylný na zlyhanie ovládačov GPU na problémovom hardvéri.

Medzi implementovanými metódami na dosiahnutie zvýšenia výkonu sme zaznamenali paralelizáciu operácií rasterizácie rôznych pixelov na strane GPU a aktívnejšiu distribúciu procesorov medzi rôzne jadrá CPU (spúšťanie JavaScriptu, spracovanie rolovania stránok, dekódovanie videí a obrázkov, proaktívne vykresľovanie obsah). Limitujúcim faktorom pre aktívnu paralelizáciu je zvyšujúca sa záťaž CPU, ktorá sa prejavuje stúpajúcimi teplotami a zvýšenou spotrebou energie, preto je dôležité dosiahnuť optimálnu rovnováhu medzi výkonom a spotrebou energie. Napríklad pri napájaní z batérie môžete obetovať rýchlosť vykresľovania, ale nemôžete obetovať spracovanie rolovania v samostatnom vlákne, pretože zníženie odozvy rozhrania bude pre používateľa viditeľné.

Technológie implementované v rámci projektu RenderingNG úplne menia prístup ku kompozícii a umožňujú adaptívne využívať rôzne technológie na optimalizáciu výpočtov na GPU a CPU vo vzťahu k jednotlivým častiam stránok, berúc do úvahy také vlastnosti ako rozlíšenie obrazovky a obnovovacia frekvencia. , ako aj prítomnosť v systéme podpory pokročilých grafických API, ako sú Vulkan, D3D12 a Metal. Príklady optimalizácií zahŕňajú aktívne používanie ukladania textúr GPU do vyrovnávacej pamäte a výsledky vykresľovania častí webových stránok, ako aj zohľadnenie iba oblasti stránky viditeľnej pre používateľa pri vykresľovaní (nemá zmysel vykresľovať časti stránky. stránky, ktoré sú pokryté iným obsahom).

Dôležitým prvkom RenderingNG je tiež izolovať výkon pri spracovaní rôznych častí stránok, napríklad izolovať výpočty spojené so zobrazovaním reklám v prvkoch iframe, zobrazovaním animácií, prehrávaním zvuku a videa, posúvaním obsahu a spúšťaním JavaScriptu.

Výsledky optimalizácie prehliadača Chromium implementované projektom RenderingNG

Implementované techniky optimalizácie:

  • Chrome 94 ponúka mechanizmus CompositeAfterPaint, ktorý poskytuje skladanie samostatne vykreslených častí webových stránok a umožňuje dynamicky škálovať zaťaženie GPU. Podľa telemetrických údajov používateľov nový systém skladania znížil latenciu rolovania o 8 %, zvýšil rýchlosť odozvy používateľa o 3 %, zvýšil rýchlosť vykresľovania o 3 %, znížil spotrebu pamäte GPU o 3 % a predĺžil výdrž batérie o 0.5 %.
  • GPU Raster, rasterizačný engine na strane GPU, bol predstavený na všetkých platformách v roku 2020 a zrýchlil benchmarky MotionMark v priemere o 37 % a benchmarky súvisiace s HTML o 150 %. Tento rok bol GPU Raster vylepšený o možnosť použiť akceleráciu na strane GPU na vykreslenie prvkov Canvas, čo má za následok o 1000 % rýchlejšie vykresľovanie obrysov a o 1.2 % rýchlejšie benchmarky MotionMark 130.
  • LayoutNG je kompletný redizajn algoritmov rozloženia prvkov stránky zameraný na zvýšenie spoľahlivosti a predvídateľnosti. Projekt sa plánuje používateľom priniesť tento rok.
  • BlinkNG - refaktorovanie a čistenie enginu Blink, rozdelenie operácií vykresľovania do oddelene vykonávaných fáz s cieľom zlepšiť efektivitu ukladania do vyrovnávacej pamäte a zjednodušiť lenivé vykresľovanie, berúc do úvahy viditeľnosť objektov v okne. Ukončenie prác je naplánované na tento rok.
  • Presúvanie manipulátorov rolovania, animácií a dekódovania obrázkov do samostatných vlákien. Projekt sa vyvíja od roku 2011 a v tomto roku dosiahol možnosť exportovať animované CSS transformácie a SVG animácie do samostatných vlákien.
  • VideoNG je efektívny a spoľahlivý nástroj na prehrávanie videa na webových stránkach. Tento rok bola implementovaná možnosť zobrazovať chránený obsah v rozlíšení 4K. Predtým bola pridaná podpora HDR.
  • Viz - samostatné procesy pre rasterizáciu (OOP-R - Out-of-process Raster) a rendering (OOP-D - Out of process display comppositor), oddeľujúce vykresľovanie rozhrania prehliadača od vykresľovania obsahu stránky. Projekt tiež vyvíja proces SkiaRenderer, ktorý využíva grafické API špecifické pre platformu (Vulkan, D3D12, Metal). Zmena umožnila 6-násobne znížiť počet pádov spôsobených problémami s ovládačmi grafiky.

Zdroj: opennet.ru

Pridať komentár