Chroom-optimeringsresultate geïmplementeer deur die RenderingNG-projek

Chromium-ontwikkelaars het die eerste resultate van die RenderingNG-projek, wat 8 jaar gelede van stapel gestuur is, opgesom wat gemik is op voortdurende werk om die werkverrigting, betroubaarheid en uitbreidbaarheid van Chrome te verhoog.

Byvoorbeeld, optimerings wat bygevoeg is in Chrome 94 in vergelyking met Chrome 93 het gelei tot 'n 8% vermindering in bladsyweergawe vertraging en 'n 0.5% verhoging in batterylewe. Gebaseer op die grootte van Chrome se gebruikersbasis, verteenwoordig dit 'n globale besparing van meer as 1400 150 jaar se SVE-tyd elke dag. In vergelyking met vorige weergawes, lewer moderne Chrome grafika meer as 6% vinniger en is XNUMX keer minder vatbaar vir GPU-bestuurder-ongelukke op problematiese hardeware.

Onder die geïmplementeerde metodes om prestasiewinste te behaal, het ons kennis geneem van die parallellisering van rasteriseringsbewerkings van verskillende pixels aan die GPU-kant en 'n meer aktiewe verspreiding van verwerkers oor verskillende SVE-kerns (uitvoering van JavaScript, verwerking van bladsyblaai, dekodering van video's en beelde, proaktiewe weergawe van inhoud). Die beperkende faktor vir aktiewe parallelisering is die toenemende las op die SVE, wat weerspieël word deur stygende temperature en verhoogde kragverbruik, daarom is dit belangrik om 'n optimale balans tussen werkverrigting en kragverbruik te bereik. Byvoorbeeld, wanneer jy op batterykrag werk, kan jy die leweringspoed opoffer, maar jy kan nie blaaiverwerking in 'n aparte draad opoffer nie, aangesien die afname in koppelvlakrespons opmerklik vir die gebruiker sal wees.

Tegnologieë wat binne die raamwerk van die RenderingNG-projek geïmplementeer word, verander die benadering tot samestelling heeltemal en laat jou toe om verskillende tegnologieë aanpasbaar te gebruik vir die optimalisering van berekeninge op die GPU en SVE met betrekking tot individuele dele van bladsye, met inagneming van kenmerke soos skermresolusie en verversingstempo , sowel as die teenwoordigheid in die stelsel van ondersteuning vir gevorderde grafiese API's, soos Vulkan, D3D12 en Metal. Voorbeelde van optimalisering sluit in die aktiewe gebruik van kas-GPU-teksture en leweringsresultate van dele van webblaaie, sowel as die inagneming van slegs die area van die bladsy wat vir die gebruiker sigbaar is wanneer dit gelewer word (dit is geen sin om dele van die weergawe weer te gee nie) bladsy wat deur ander inhoud gedek word).

'n Belangrike element van RenderingNG is ook om prestasie te isoleer wanneer verskillende dele van bladsye verwerk word, byvoorbeeld om die berekening wat verband hou met die aanbieding van advertensies in iframes, die vertoon van animasies, die speel van oudio en video, die blaai van inhoud en die uitvoering van JavaScript te isoleer.

Chroom-optimeringsresultate geïmplementeer deur die RenderingNG-projek

Geïmplementeerde optimeringstegnieke:

  • Chrome 94 bied die CompositeAfterPaint-meganisme, wat die samestelling van afsonderlik gelewerde dele van webblaaie bied en jou toelaat om die las op die GPU dinamies te skaal. Volgens gebruikerstelemetriedata het die nuwe samestellingstelsel die rolvertraging met 8% verminder, die reaksie van die gebruikerervaring met 3% verhoog, die leweringspoed met 3% verhoog, GPU-geheueverbruik met 3% verminder en die batterylewe met 0.5% verleng.
  • GPU Raster, 'n GPU-kant rasterisering-enjin, is in 2020 oor alle platforms bekendgestel en het MotionMark-maatstawwe met gemiddeld 37% en HTML-verwante maatstawwe met 150% versnel. Hierdie jaar is GPU Raster verbeter met die vermoë om GPU-kantversnelling te gebruik om Canvas-elemente weer te gee, wat gelei het tot 1000% vinniger omtrekweergawe en 1.2% vinniger MotionMark 130-maatstawwe.
  • LayoutNG is 'n volledige herontwerp van bladsy-element-uitlegalgoritmes wat daarop gemik is om betroubaarheid en voorspelbaarheid te verhoog. Die projek word beplan om vanjaar aan gebruikers gebring te word.
  • BlinkNG - herfaktorering en skoonmaak van die Blink-enjin, die verdeling van leweringsoperasies in afsonderlik uitgevoerde fases om kasdoeltreffendheid te verbeter en lui lewering te vereenvoudig, met inagneming van die sigbaarheid van voorwerpe in die venster. Die werk is geskeduleer om vanjaar voltooi te wees.
  • Skuif blaai-, animasie- en beelddekoderinghanteerders na aparte drade. Die projek ontwikkel sedert 2011 en het vanjaar die vermoë bereik om geanimeerde CSS-transformasies en SVG-animasies na aparte drade uit te voer.
  • VideoNG is 'n doeltreffende en betroubare enjin om video op webblaaie te speel. Hierdie jaar is die vermoë om beskermde inhoud in 4K-resolusie te vertoon, geïmplementeer. HDR-ondersteuning is voorheen bygevoeg.
  • Viz - aparte prosesse vir rasterisering (OOP-R - Out-of-proces Raster) en lewering (OOP-D - Out of process display compositor), wat die weergawe van die blaaier-koppelvlak skei van die weergawe van bladsy-inhoud. Die projek ontwikkel ook die SkiaRenderer-proses, wat platformspesifieke grafiese API's (Vulkan, D3D12, Metal) gebruik. Die verandering het dit moontlik gemaak om die aantal ongelukke weens probleme in grafiese drywers met 6 keer te verminder.

Bron: opennet.ru

Voeg 'n opmerking