Rezultati Chromium optimizacije implementirani od strane projekta RenderingNG

Chromium programeri su sumirali prve rezultate RenderingNG projekta, pokrenutog prije 8 godina, usmjerenog na kontinuirani rad na povećanju performansi, pouzdanosti i proširivosti Chrome-a.

Na primjer, optimizacije dodane u Chrome 94 u usporedbi s Chromeom 93 dovele su do 8% smanjenja kašnjenja prikazivanja stranica i 0.5% povećanja vijeka trajanja baterije. Na osnovu veličine Chromeove korisničke baze, ovo predstavlja globalnu uštedu od preko 1400 godina CPU vremena svaki dan. U poređenju sa prethodnim verzijama, moderni Chrome prikazuje grafiku više od 150% brže i 6 puta je manje podložan padovima GPU drajvera na problematičnom hardveru.

Među implementiranim metodama za postizanje povećanja performansi, uočili smo paralelizaciju operacija rasterizacije različitih piksela na strani GPU-a i aktivniju distribuciju procesora u različitim CPU jezgrama (izvršavanje JavaScripta, obrada pomicanja stranica, dekodiranje video zapisa i slika, proaktivno prikazivanje sadržaj). Ograničavajući faktor za aktivnu paralelizaciju je sve veće opterećenje CPU-a, što se odražava porastom temperature i povećanom potrošnjom energije, pa je važno postići optimalnu ravnotežu između performansi i potrošnje energije. Na primjer, kada radite na bateriju, možete žrtvovati brzinu renderiranja, ali ne možete žrtvovati obradu pomicanja u posebnoj niti, jer će smanjenje odziva interfejsa biti primjetno za korisnika.

Tehnologije implementirane u okviru projekta RenderingNG u potpunosti mijenjaju pristup kompozitu i omogućavaju vam da adaptivno koristite različite tehnologije za optimizaciju proračuna na GPU-u i CPU-u u odnosu na pojedinačne dijelove stranica, uzimajući u obzir karakteristike kao što su rezolucija ekrana i brzina osvježavanja , kao i prisustvo u sistemu podrške za napredne grafičke API-je, kao što su Vulkan, D3D12 i Metal. Primjeri optimizacija uključuju aktivnu upotrebu keširanja GPU tekstura i rezultata renderiranja dijelova web stranica, kao i uzimanje u obzir samo područja stranice koje je korisniku vidljivo prilikom renderiranja (nema smisla renderirati dijelove stranice stranice koje su pokrivene drugim sadržajem).

Važan element RenderingNG-a je i da izoluje performanse prilikom obrade različitih delova stranica, na primer, da izoluje računanje povezano sa posluživanjem oglasa u iframe-ovima, prikazivanjem animacija, reprodukcijom audio i video zapisa, pomeranjem sadržaja i izvršavanjem JavaScript-a.

Rezultati Chromium optimizacije implementirani od strane projekta RenderingNG

Implementirane tehnike optimizacije:

  • Chrome 94 nudi mehanizam CompositeAfterPaint, koji omogućava sastavljanje odvojeno prikazanih dijelova web stranica i omogućava vam da dinamički skalirate opterećenje GPU-a. Prema podacima korisničke telemetrije, novi sistem sastavljanja smanjio je kašnjenje skrolovanja za 8%, povećao odziv korisničkog iskustva za 3%, povećao brzinu renderovanja za 3%, smanjio potrošnju GPU memorije za 3% i produžio vijek trajanja baterije za 0.5%.
  • GPU Raster, motor za rasterizaciju na strani GPU-a, predstavljen je na svim platformama 2020. godine i ubrzao je MotionMark benchmarkove u prosjeku za 37% i referentne vrijednosti vezane za HTML za 150%. Ove godine, GPU Raster je poboljšan mogućnošću korištenja ubrzanja na strani GPU-a za renderiranje Canvas elemenata, što je rezultiralo 1000% bržim renderiranjem obrisa i 1.2% bržim MotionMark 130 benchmarkovima.
  • LayoutNG je potpuni redizajn algoritama izgleda elemenata stranice sa ciljem povećanja pouzdanosti i predvidljivosti. Planirano je da se projekat približi korisnicima ove godine.
  • BlinkNG - refaktoring i čišćenje Blink motora, dijeljenje operacija renderiranja u odvojeno izvršene faze kako bi se poboljšala efikasnost keširanja i pojednostavilo lijeno renderiranje, uzimajući u obzir vidljivost objekata u prozoru. Planirano je da radovi budu završeni ove godine.
  • Premještanje rukovatelja pomicanjem, animacijom i dekodiranjem slika u odvojene niti. Projekat se razvija od 2011. godine i ove godine je postigao mogućnost izvoza animiranih CSS transformacija i SVG animacija u zasebne niti.
  • VideoNG je efikasan i pouzdan motor za reprodukciju videa na web stranicama. Ove godine implementirana je mogućnost prikazivanja zaštićenog sadržaja u 4K rezoluciji. HDR podrška je prethodno dodana.
  • Viz - odvojeni procesi za rasterizaciju (OOP-R - Raster van procesa) i renderovanje (OOP-D - Vanprocesni kompozitor prikaza), odvajajući renderovanje interfejsa pretraživača od prikazivanja sadržaja stranice. Projekat takođe razvija SkiaRenderer proces, koji koristi grafičke API-je specifične za platformu (Vulkan, D3D12, Metal). Promjena je omogućila smanjenje broja padova zbog problema u grafičkim drajverima za 6 puta.

izvor: opennet.ru

Dodajte komentar