Chromiumi optimeerimise tulemused, mille on ellu viinud RenderingNG projekt.

Chromiumi arendajad on teinud esialgseid kokkuvõtteid 8 aastat tagasi alustatud RenderingNG projektist, mille eesmärk on pidev töö Chrome'i jõudluse, usaldusväärsuse ja skaleeritavuse suurendamiseks.

Näiteks Chrome 94 väljaandes võrreldes Chrome 93-ga lisatud optimeerimised vähendasid lehtede töötlemise viivitusi 8% ja pikendasid aku tööaega 0,5%. Arvestades Chrome'i kasutajate arvu, väljenduvad need näitajad globaalsetes mastaapides iga päev üle 1400 aasta protsessoriajavõidu kokkuhoidus. Kaasaegne Chrome joonistab graafikat üle 150% kiiremini ja on 6 korda vähem kalduv GPU-draiverite kokkuvarisemisele probleemsetes seadmetes võrreldes varasemate aastate versioonidega.

Teostatud meetodite seas, mis aitavad saavutada jõudluse kasvu, on märgitud, et GPU küljest erinevate pikslite rasteriseerimise operatsioonide paralleelne töötlemine ja töötlejate aktiivsem jaotamine erinevatele CPU tuumadele (JavaScripti täitmine, lehe kerimise töötlemine, video ja piltide dekodeerimine, sisu eeltöötlus). Aktiivse paralleelimise piiravaks teguriks on CPU koormuse suurenemine, mis kajastub temperatuuri tõusus ja energiatarbimise suurenemises, seetõttu on oluline saavutada optimaalne tasakaal jõudluse ja energiatarbimise vahel. Näiteks akutoitel töötades võib renderdamise kiirusest loobuda, kuid lehe kerimise eraldi lõimes töötlemist ei tohi kõrvale heita, kuna kasutajale on reageerimisvõime vähenemine selgelt tuntav.

RenderingNG projekti raames rakendatud tehnoloogiad muudavad tugevasti lähenemist kompositing'ule ning võimaldavad paindlikult kasutada erinevaid GPU ja CPU arvutusvõimsuse optimeerimise tehnoloogiaid, lähtudes lehekülgede eriküsimustest, nagu resolutsioon ja ekraani värskendussagedus, samuti süsteemi toe olemasolust edasijõudnud graafiliste API-de, nagu Vulkan, D3D12 ja Metal jaoks. Optimeerimise näidetena tuuakse välja GPU tekstuuride ja web-lehekülgede osade renderdamise tulemuste aktiivne vahemälu kasutamine, samuti renderdamisel arvestamine ainult neid lehealasid, mis on kasutajale nähtavad (pole mõtet renderdada lehe osi, mida katab muu sisu).

RenderingNG oluline element on ka jõudluse isoleerimine erinevate lehekülgede osade töötlemisel, näiteks reklaami kuvamisega seotud arvutuste isoleerimine iframe blokis, animatsioonide esitamine, heli ja video esitamine, sisu kerimine ja JavaScripti teostamine.

Chromiumi optimeerimise tulemused, mille on ellu viinud RenderingNG projekt.

Rakendatud optimeerimise tehnikad:

  • Chrome 94 toob sisse CompositeAfterPaint mehhanismi, mis võimaldab komposiitide eraldi renderdatud veebilehe osade renderdamist ja võimaldab dünaamiliselt skaleerida GPU koormust. Kasutajatelt saadud telemeetriateabe põhjal võimaldas uus komposiitide süsteem vähendada kerimise latentsust 8%, tõsta kasutajaliidese vastuvõtlikkust 3%, suurendada joonistamise kiirus 3%, vähendada GPU mälutarbimist 3% ja pikendada autonoomset tööaega 0,5%.
  • GPU Raster — GPU poolne rasterdamismehhanism, mis viidi kõigil platvormidel sisse 2020. aastal ja mis kiirendas MotionMarki teste keskmiselt 37%, HTMLiga seotud kategooriates aga 150%. Sel aastal täiendati GPU Rasterit võimalusega kasutada GPU kiirendust Canvas elementide renderdamiseks, mis viis kontuuride renderdamise kiiruseni 1000% ning MotionMark 1.2 testide läbimise kiiruseni 130%.
  • LayoutNG — täiustatud algoritmide uuendus, mille eesmärk on suurendada lehekülje elementide paigutuse usaldusväärsust ja ennustatavust. Projekti on plaanis kasutajateni toimetada sel aastal.
  • BlinkNG — Blink'i mootori refaktoreerimine ja puhastamine, eraldades joonistamise operatsioonid eraldi etappideks, et suurendada vahemälu tõhusust ja lihtsustada viivitust joonistamist, arvestades nähtavust objektide aknas. Töö plaanitakse lõpetada sel aastal.
  • Rullimise, animatsioonide ja piltide dekodeerimise töötlejate eraldamine eraldi lõime. Projekt on arenenud alates 2011. aastast ja saavutas sel aastal võime eraldada eraldi lõimed animatsioonide CSS-üleminekute ja SVG animatsioonide jaoks.
  • VideoNG — tõhus ja usaldusväärne videomootor veebilehtede jaoks. Sel aastal on rakendatud võimalus kaitstud sisu kuvamiseks 4K resolutsiooniga. Varasemalt lisati HDR toetus.
  • Viz — eraldi protsessid rasteriseerimiseks (OOP-R — Out-of-process Raster) ja joonistamiseks (OOP-D — Out of process display compositor), mis eraldavad brauseri kasutajaliidese joonistamise lehe sisu joonistamisest. Projekt arendab ka SkiaRendererit, mis kasutab erinevate platvormide spetsiifilisi graafika API-sid (Vulkan, D3D12, Metal). Muudatus on võimaldanud kuue korra võrra vähendada krahhide arvu, mis on tingitud graafikadraiverite probleemidest.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster