Chromiumi optimeerimise tulemused on rakendatud projektiga RenderingNG

Chromiumi arendajad on kokku võtnud 8 aastat tagasi käivitatud projekti RenderingNG esimesed tulemused, mille eesmärk on jätkuv töö Chrome'i jõudluse, töökindluse ja laiendatavuse suurendamiseks.

Näiteks vähendasid Chrome 94-sse lisatud optimeerimised võrreldes Chrome 93-ga lehe renderdamise latentsusaega 8% ja aku kasutusaega 0.5%. Arvestades Chrome'i kasutajabaasi suurust, tähendab see iga päev üle 1400 aasta globaalset CPU aja kokkuhoidu. Võrreldes eelmiste versioonidega renderdab kaasaegne Chrome graafikat rohkem kui 150% kiiremini ja on 6 korda vähem vastuvõtlik probleemse riistvara korral GPU draiveri kokkujooksmisele.

Jõudluse suurendamiseks rakendatud meetodite hulgas märkisime erinevate pikslite rasterdamisoperatsioonide paralleelsust GPU poolel ja protsessorite aktiivsemat jaotamist erinevate CPU tuumade vahel (JavaScripti käivitamine, lehe kerimise töötlemine, videote ja piltide dekodeerimine, proaktiivne renderdamine sisu). Aktiivse paralleelsuse piirav tegur on protsessori kasvav koormus, mis väljendub temperatuuri tõustes ja suurenenud energiatarbimises, mistõttu on oluline saavutada jõudluse ja energiatarbimise vahel optimaalne tasakaal. Näiteks akutoitel töötamisel võite ohverdada renderduskiirust, kuid te ei saa ohverdada kerimise töötlemist eraldi lõimes, kuna kasutajaliidese reageerimisvõime vähenemine on kasutaja jaoks märgatav.

Projekti RenderingNG raames rakendatud tehnoloogiad muudavad täielikult lähenemist kompositsioonile ja võimaldavad adaptiivselt kasutada erinevaid tehnoloogiaid GPU ja CPU arvutuste optimeerimiseks lehtede üksikute osade suhtes, võttes arvesse selliseid funktsioone nagu ekraani eraldusvõime ja värskendussagedus. , samuti täiustatud graafika API-de (nt Vulkan, D3D12 ja Metal) toe olemasolu süsteemis. Optimeerimise näideteks on GPU tekstuuride vahemällu salvestamine ja veebilehtede osade renderdamise tulemuste aktiivne kasutamine, samuti ainult kasutajale renderdamisel nähtava lehe ala arvessevõtmine (pole mõtet renderdada lehe osi. leht, mis on kaetud muu sisuga).

RenderingNG oluline element on ka jõudluse isoleerimine lehtede erinevate osade töötlemisel, näiteks isoleerida arvutusi, mis on seotud reklaamide esitamisega iframes, animatsioonide kuvamise, heli ja video esitamise, sisu kerimise ja JavaScripti käivitamisega.

Chromiumi optimeerimise tulemused on rakendatud projektiga RenderingNG

Rakendatud optimeerimistehnikad:

  • Chrome 94 pakub CompositeAfterPaint mehhanismi, mis võimaldab koostada veebilehtede eraldi renderdatud osad ja võimaldab dünaamiliselt skaleerida GPU koormust. Vastavalt kasutajate telemeetria andmetele vähendas uus komposiitsüsteem kerimise latentsust 8%, suurendas kasutajakogemuse reageerimisvõimet 3%, suurendas renderduskiirust 3%, vähendas GPU mälutarbimist 3% ja pikendas aku tööiga 0.5%.
  • GPU-poolne rasterdamismootor GPU Raster võeti kasutusele kõikidel platvormidel 2020. aastal ja see on kiirendanud MotionMarki etalonide täitmist keskmiselt 37% ja HTML-iga seotud etalonte 150%. Sel aastal täiustati GPU Rasterit võimalusega kasutada lõuendi elementide renderdamiseks GPU-poolset kiirendust, mille tulemuseks on 1000% kiirem kontuuride renderdamine ja 1.2% kiirem MotionMark 130 etalon.
  • LayoutNG on leheelementide paigutusalgoritmide täielik ümberkujundamine, mille eesmärk on suurendada usaldusväärsust ja prognoositavust. Projekt on plaanis kasutajateni tuua sel aastal.
  • BlinkNG - Blink-mootori taastamine ja puhastamine, renderdustoimingute jagamine eraldi teostatavateks faasideks, et parandada vahemällu salvestamise efektiivsust ja lihtsustada laiska renderdamist, võttes arvesse objektide nähtavust aknas. Tööd on kavas lõpetada tänavu.
  • Kerimise, animatsiooni ja kujutiste dekodeerimise töötlejate liigutamine eraldi lõimedesse. Projekti on arendatud alates 2011. aastast ja sel aastal saavutati võimalus eksportida animeeritud CSS-teisendusi ja SVG-animatsioone eraldi lõimedesse.
  • VideoNG on tõhus ja usaldusväärne mootor videote esitamiseks veebilehtedel. Sel aastal on kasutusele võetud võimalus kuvada kaitstud sisu 4K eraldusvõimega. HDR-i tugi on varem lisatud.
  • Viz – eraldi protsessid rasteriseerimiseks (OOP-R – Out-of-process Raster) ja renderdamiseks (OOP-D – Out of Process display compositor), mis eraldab brauseri liidese renderdamise lehe sisu renderdamisest. Projekti käigus arendatakse ka SkiaRendereri protsessi, mis kasutab platvormipõhiseid graafika API-sid (Vulkan, D3D12, Metal). Muudatus võimaldas vähendada graafikadraiverite probleemidest tingitud krahhide arvu 6 korda.

Allikas: opennet.ru

Lisa kommentaar