Chromium optimizavimo rezultatai, įgyvendinami RenderingNG projekto

„Chromium“ kūrėjai apibendrino pirmuosius prieš 8 metus pradėto projekto „RenderingNG“, skirto nuolatiniam darbui didinant „Chrome“ našumą, patikimumą ir išplečiamumą, rezultatus.

Pavyzdžiui, optimizavus „Chrome 94“, palyginti su „Chrome 93“, puslapio pateikimo delsa sumažėjo 8 %, o akumuliatoriaus veikimo laikas pailgėjo 0.5 %. Atsižvelgiant į „Chrome“ naudotojų bazės dydį, tai reiškia, kad kasdien sutaupoma daugiau nei 1400 150 metų procesoriaus laiko. Palyginti su ankstesnėmis versijomis, šiuolaikinė „Chrome“ atkuria grafiką daugiau nei 6 % greičiau ir yra XNUMX kartus mažiau jautri GPU tvarkyklių gedimams dėl probleminės aparatinės įrangos.

Tarp įdiegtų metodų, leidžiančių padidinti našumą, pažymėjome skirtingų vaizdo elementų rastrizacijos operacijų lygiagrečiavimą GPU pusėje ir aktyvesnį procesorių paskirstymą skirtinguose procesoriaus branduoliuose (JavaScript vykdymas, puslapio slinkimas, vaizdo įrašų ir vaizdų dekodavimas, aktyvus vaizdo atvaizdavimas). turinys). Aktyvų lygiagretavimą ribojantis veiksnys yra didėjanti procesoriaus apkrova, kurią atspindi kylančios temperatūros ir padidėjusios energijos sąnaudos, todėl svarbu pasiekti optimalų našumo ir energijos suvartojimo balansą. Pavyzdžiui, kai naudojate akumuliatoriaus energiją, galite paaukoti atvaizdavimo greitį, bet negalite paaukoti slinkimo apdorojimo atskiroje gijoje, nes sąsajos reagavimo sumažėjimas bus pastebimas vartotojui.

„RenderingNG“ projekto metu įdiegtos technologijos visiškai pakeičia požiūrį į kompoziciją ir leidžia adaptyviai naudoti skirtingas technologijas, skirtas optimizuoti GPU ir CPU skaičiavimus, atsižvelgiant į atskiras puslapių dalis, atsižvelgiant į tokias funkcijas kaip ekrano skiriamoji geba ir atnaujinimo dažnis. , taip pat pažangių grafikos API, tokių kaip Vulkan, D3D12 ir Metal, palaikymo sistemoje. Optimizavimo pavyzdžiai apima aktyvų GPU tekstūrų kaupimo talpykloje naudojimą ir tinklalapių dalių atvaizdavimo rezultatus, taip pat atsižvelgimą tik į puslapio plotą, matomą vartotojui pateikiant (nėra prasmės atvaizduoti puslapio dalių). puslapių, kuriuos apima kitas turinys).

Svarbus RenderingNG elementas taip pat yra atskirti našumą apdorojant skirtingas puslapių dalis, pavyzdžiui, norint atskirti skaičiavimus, susijusius su skelbimų teikimu iframe, animacijų rodymu, garso ir vaizdo įrašų leidimu, turinio slinkimu ir „JavaScript“ vykdymu.

Chromium optimizavimo rezultatai, įgyvendinami RenderingNG projekto

Įdiegti optimizavimo būdai:

  • „Chrome 94“ siūlo „CompositeAfterPaint“ mechanizmą, kuris suteikia galimybę sudaryti atskirai pateiktas tinklalapių dalis ir leidžia dinamiškai padidinti GPU apkrovą. Remiantis naudotojų telemetrijos duomenimis, naujoji komponavimo sistema sumažino slinkimo delsą 8 %, padidino vartotojo patirtį 3 %, padidino atvaizdavimo greitį 3 %, sumažino GPU atminties sąnaudas 3 % ir pailgino baterijos veikimo laiką 0.5 %.
  • GPU Raster, GPU pusės rastrizacijos variklis, buvo pristatytas visose platformose 2020 m. ir pagreitino MotionMark etalonus vidutiniškai 37%, o su HTML susijusius etalonus - 150%. Šiais metais GPU Raster buvo patobulintas, suteikiant galimybę naudoti GPU spartinimą, kad būtų pateikti drobės elementai, todėl kontūrų atvaizdavimas 1000 % greitesnis ir 1.2 % greitesnis MotionMark 130 etalonas.
  • „LayoutNG“ yra visiškai perdarytas puslapio elementų išdėstymo algoritmas, kuriuo siekiama padidinti patikimumą ir nuspėjamumą. Projektą vartotojams planuojama pristatyti šiais metais.
  • BlinkNG – Blink variklio pertvarkymas ir valymas, atvaizdavimo operacijų padalijimas į atskirai vykdomas fazes, siekiant pagerinti talpyklos efektyvumą ir supaprastinti tingų atvaizdavimą, atsižvelgiant į objektų matomumą lange. Darbus planuojama baigti šiais metais.
  • Slinkimo, animacijos ir vaizdo dekodavimo tvarkyklių perkėlimas į atskiras gijas. Projektas vystomas nuo 2011 m., o šiemet pavyko eksportuoti animuotas CSS transformacijas ir SVG animacijas į atskiras gijas.
  • „VideoNG“ ​​yra efektyvus ir patikimas vaizdo įrašų atkūrimo tinklalapiuose variklis. Šiais metais įdiegta galimybė rodyti apsaugotą turinį 4K raiška. Anksčiau buvo pridėtas HDR palaikymas.
  • Viz – atskiri procesai, skirti rastravimui (OOP-R – Out-of-process Raster) ir atvaizdavimui (OOP-D – Out of Process display compositor), atskiriantys naršyklės sąsajos atvaizdavimą nuo puslapio turinio atvaizdavimo. Projekte taip pat kuriamas „SkiaRenderer“ procesas, kuriame naudojamos konkrečios platformos grafinės API (Vulkan, D3D12, Metal). Pakeitimas leido 6 kartus sumažinti gedimų skaičių dėl grafikos tvarkyklių problemų.

Šaltinis: opennet.ru

Добавить комментарий