Rezultati optimizacije Chromiuma implementirani projektom RenderingNG

Programeri Chromiuma saželi su prve rezultate projekta RenderingNG, pokrenutog prije 8 godina, usmjerenog na stalni rad na povećanju performansi, pouzdanosti i proširivosti Chromea.

Na primjer, optimizacije dodane u Chromeu 94 u usporedbi s Chromeom 93 rezultirale su smanjenjem latencije renderiranja stranice od 8% i produljenjem trajanja baterije od 0.5%. Na temelju veličine Chromeove korisničke baze, to predstavlja globalnu uštedu od više od 1400 godina CPU vremena svaki dan. U usporedbi s prethodnim verzijama, moderni Chrome renderira grafiku više od 150% brže i 6 je puta manje osjetljiv na padove GPU drajvera na problematičnom hardveru.

Među implementiranim metodama za postizanje povećanja performansi primijetili smo paralelizaciju operacija rasterizacije različitih piksela na strani GPU-a i aktivniju distribuciju procesora po različitim jezgrama CPU-a (izvršavanje JavaScripta, obrada pomicanja stranica, dekodiranje videozapisa i slika, proaktivno prikazivanje sadržaj). Ograničavajući čimbenik za aktivnu paralelizaciju je sve veće opterećenje CPU-a, što se odražava porastom temperature i povećanom potrošnjom energije, stoga je važno postići optimalnu ravnotežu između performansi i potrošnje energije. Na primjer, kada radite na baterijsko napajanje, možete žrtvovati brzinu renderiranja, ali ne možete žrtvovati obradu pomicanja u zasebnoj niti, budući da će smanjenje odziva sučelja biti vidljivo korisniku.

Tehnologije implementirane u okviru projekta RenderingNG u potpunosti mijenjaju pristup kompozitiranju i omogućuju vam prilagodljivu upotrebu različitih tehnologija za optimizaciju izračuna na GPU i CPU u odnosu na pojedinačne dijelove stranica, uzimajući u obzir značajke kao što su razlučivost zaslona i brzina osvježavanja , kao i prisutnost u sustavu podrške za napredne grafičke API-je, kao što su Vulkan, D3D12 i Metal. Primjeri optimizacija uključuju aktivno korištenje predmemoriranja GPU tekstura i rezultata renderiranja dijelova web stranica, kao i uzimanje u obzir samo područja stranice vidljivog korisniku prilikom renderiranja (nema smisla renderirati dijelove stranice koje su prekrivene drugim sadržajem).

Važan element RenderingNG-a također je izolacija performansi prilikom obrade različitih dijelova stranica, na primjer, izolacija izračuna povezanih s posluživanjem oglasa u iframeovima, prikazivanjem animacija, reprodukcijom zvuka i videa, pomicanjem sadržaja i izvršavanjem JavaScripta.

Rezultati optimizacije Chromiuma implementirani projektom RenderingNG

Implementirane tehnike optimizacije:

  • Chrome 94 nudi mehanizam CompositeAfterPaint, koji omogućuje sastavljanje zasebno prikazanih dijelova web stranica i omogućuje dinamičko skaliranje opterećenja GPU-a. Prema korisničkim telemetrijskim podacima, novi kompozitni sustav smanjio je latenciju pomicanja za 8%, povećao odziv korisničkog iskustva za 3%, povećao brzinu renderiranja za 3%, smanjio potrošnju GPU memorije za 3% i produžio trajanje baterije za 0.5%.
  • GPU Raster, mehanizam za rasterizaciju na strani GPU-a, predstavljen je na svim platformama 2020. godine i ubrzao je MotionMark referentne vrijednosti za prosječno 37% i referentne vrijednosti povezane s HTML-om za 150%. Ove je godine GPU Raster poboljšan mogućnošću korištenja ubrzanja na strani GPU-a za renderiranje Canvas elemenata, što je rezultiralo 1000% bržim renderiranjem obrisa i 1.2% bržim MotionMark 130 mjerilima.
  • LayoutNG je potpuni redizajn algoritama izgleda elemenata stranice s ciljem povećanja pouzdanosti i predvidljivosti. Projekt se planira približiti korisnicima ove godine.
  • BlinkNG - refaktoriranje i čišćenje Blink motora, dijeljenje operacija renderiranja u zasebno izvršene faze kako bi se poboljšala učinkovitost predmemoriranja i pojednostavilo lijeno renderiranje, uzimajući u obzir vidljivost objekata u prozoru. Završetak radova planiran je ove godine.
  • Premještanje rukovatelja pomicanjem, animacijom i dekodiranjem slika u zasebne niti. Projekt se razvija od 2011. godine, a ove godine je dobio mogućnost izvoza animiranih CSS transformacija i SVG animacija u zasebne niti.
  • VideoNG je učinkovit i pouzdan mehanizam za reprodukciju videa na web stranicama. Ove godine implementirana je mogućnost prikaza zaštićenog sadržaja u 4K rezoluciji. HDR podrška je prethodno dodana.
  • Viz - odvojeni procesi za rasterizaciju (OOP-R - Out-of-process Raster) i renderiranje (OOP-D - Out of process display compositor), odvajajući renderiranje sučelja preglednika od renderiranja sadržaja stranice. Projekt također razvija proces SkiaRenderer, koji koristi grafičke API-je specifične za platformu (Vulkan, D3D12, Metal). Promjena je omogućila smanjenje broja padova zbog problema u grafičkim upravljačkim programima za 6 puta.

Izvor: opennet.ru

Dodajte komentar