Chromium-optimisaasjeresultaten ymplementearre troch it RenderingNG-projekt

Chromium-ûntwikkelders hawwe de earste resultaten gearfette fan it RenderingNG-projekt, lansearre 8 jier lyn, rjochte op oanhâldend wurk om de prestaasjes, betrouberens en útwreidzjen fan Chrome te fergrutsjen.

Bygelyks, optimisaasjes tafoege yn Chrome 94 yn ferliking mei Chrome 93 resultearren yn in 8% reduksje yn 'e latency fan side-rendering en in ferheging fan 0.5% yn' e batterijlibben. Op grûn fan 'e grutte fan Chrome's brûkersbasis fertsjintwurdiget dit in wrâldwide besparring fan mear dan 1400 jier CPU-tiid elke dei. Yn ferliking mei eardere ferzjes jout moderne Chrome grafiken mear dan 150% rapper en is 6 kear minder gefoelich foar crashes fan GPU-bestjoerders op problematyske hardware.

Under de ymplementearre metoaden om prestaasjeswinsten te berikken, hawwe wy de parallelisaasje fan rasterisaasje-operaasjes fan ferskate piksels oan 'e GPU-kant opmurken en in mear aktive ferdieling fan processors oer ferskate CPU-kearnen (útfieren fan JavaScript, ferwurkjen fan sidescrollen, dekodearjen fan fideo's en ôfbyldings, proaktive werjefte fan ynhâld). De beheinende faktor foar aktive parallelisaasje is de tanimmende lading op 'e CPU, dy't wjerspegele wurdt troch tanimmende temperatueren en ferhege enerzjyferbrûk, dus it is wichtich om in optimaal lykwicht te berikken tusken prestaasjes en enerzjyferbrûk. Bygelyks, as jo rinne op batterij, kinne jo offerje rendering snelheid, mar do kinst net opofferje scrolling ferwurking yn in aparte tried, sûnt de fermindering fan ynterface responsiveness sil wêze merkber foar de brûker.

Technologien ymplementearre yn it ramt fan it RenderingNG-projekt feroarje de oanpak fan komposysje folslein en kinne jo adaptyf gebrûk meitsje fan ferskate technologyen foar it optimalisearjen fan berekkeningen op 'e GPU en CPU yn relaasje ta yndividuele dielen fan siden, rekken hâldend mei funksjes lykas skermresolúsje en ferfarskingsfrekwinsje , en ek de oanwêzigens yn it systeem fan stipe foar avansearre grafyske API's, lykas Vulkan, D3D12 en Metal. Foarbylden fan optimisaasjes omfetsje it aktive gebrûk fan caching GPU-tekstueren en renderingsresultaten fan dielen fan websiden, lykas ek allinich it gebiet fan 'e side dy't sichtber is foar de brûker by it werjaan fan' e side yn rekken brocht (d'r hat gjin punt yn it werjaan fan dielen fan 'e webside side dy't wurde behannele troch oare ynhâld).

In wichtich elemint fan RenderingNG is ek om prestaasjes te isolearjen by it ferwurkjen fan ferskate dielen fan siden, bygelyks om de berekkening te isolearjen dy't ferbûn is mei it tsjinjen fan advertinsjes yn iframes, it werjaan fan animaasjes, it spieljen fan audio en fideo, it rôljen fan ynhâld en it útfieren fan JavaScript.

Chromium-optimisaasjeresultaten ymplementearre troch it RenderingNG-projekt

Implementearre optimisaasjetechniken:

  • Chrome 94 biedt it CompositeAfterPaint-meganisme, dy't komposysje leveret fan apart werjûn dielen fan websiden en jo kinne de lading op 'e GPU dynamysk skaalje. Neffens brûker telemetry gegevens, it nije gearstalde systeem fermindere rôlje latency mei 8%, ferhege brûkersûnderfining responsiviteit mei 3%, ferhege rendering snelheid mei 3%, redusearre GPU ûnthâld konsumpsje mei 3%, en ferlingje de batterij libben mei 0.5%.
  • GPU Raster, in GPU-side rasterisaasjemotor, waard yn 2020 yntrodusearre oer alle platfoarms en hat MotionMark-benchmarks fersneld mei gemiddeld 37% en HTML-relatearre benchmarks mei 150%. Dit jier waard GPU Raster ferbettere mei de mooglikheid om GPU-side-fersnelling te brûken om Canvas-eleminten te renderen, wat resulteart yn 1000% rappere rendering en 1.2% flugger MotionMark 130-benchmarks.
  • LayoutNG is in folslein werynrjochting fan algoritmen foar opmaak fan side-eleminten rjochte op it fergrutsjen fan betrouberens en foarsisberens. It projekt is pland om dit jier oan brûkers te bringen.
  • BlinkNG - refactoring en skjinmeitsjen fan 'e Blink-motor, dielen fan renderingsoperaasjes yn apart útfierde fazen om caching-effisjinsje te ferbetterjen en loai rendering te ferienfâldigjen, rekken hâldend mei de sichtberens fan objekten yn it finster. It wurk moat dit jier klear wêze.
  • Behannelers foar rôljen, animaasje en ôfbyldingsdekodearjen ferpleatse om diskusjes te skieden. It projekt is ûntwikkele sûnt 2011 en dit jier berikte it de mooglikheid om animearre CSS-transformaasjes en SVG-animaasjes te eksportearjen nei aparte threaden.
  • VideoNG is in effisjinte en betroubere motor foar it spieljen fan fideo op websiden. Dit jier is de mooglikheid om beskerme ynhâld yn 4K-resolúsje wer te jaan ymplementearre. HDR-stipe waard earder tafoege.
  • Viz - aparte prosessen foar rasterisaasje (OOP-R - Out-of-proces Raster) en rendering (OOP-D - Out of process display compositor), skiedt de werjefte fan 'e browserynterface fan' e werjefte fan sideynhâld. It projekt ûntwikkelet ek it SkiaRenderer-proses, dat brûkt platfoarm-spesifike grafyske API's (Vulkan, D3D12, Metal). De feroaring makke it mooglik om it oantal crashes te ferminderjen fanwege problemen yn grafyske bestjoerders mei 6 kear.

Boarne: opennet.ru

Add a comment