Resultats d'optimització de Chromium implementats pel projecte RenderingNG

Els desenvolupadors de Chromium han resumit els primers resultats del projecte RenderingNG, llançat fa 8 anys, amb l'objectiu de treballar contínuament per augmentar el rendiment, la fiabilitat i l'extensibilitat de Chrome.

Per exemple, les optimitzacions afegides a Chrome 94 en comparació amb Chrome 93 van donar lloc a una reducció del 8% de la latència de representació de la pàgina i un augment del 0.5% de la durada de la bateria. Segons la mida de la base d'usuaris de Chrome, això representa un estalvi global de més de 1400 anys de temps de CPU cada dia. En comparació amb les versions anteriors, Chrome modern renderitza els gràfics més d'un 150% més ràpid i és 6 vegades menys susceptible als bloquejos del controlador de la GPU en maquinari problemàtic.

Entre els mètodes implementats per aconseguir guanys de rendiment, vam destacar la paral·lelització de les operacions de rasterització de diferents píxels al costat de la GPU i una distribució més activa dels processadors entre diferents nuclis de CPU (execució de JavaScript, processament de desplaçament de pàgines, descodificació de vídeos i imatges, representació proactiva de contingut). El factor limitant per a la paral·lelització activa és la càrrega creixent de la CPU, que es reflecteix en l'augment de la temperatura i l'augment del consum d'energia, per la qual cosa és important aconseguir un equilibri òptim entre rendiment i consum d'energia. Per exemple, quan funcioneu amb bateria, podeu sacrificar la velocitat de renderització, però no podeu sacrificar el processament de desplaçament en un fil separat, ja que la disminució de la capacitat de resposta de la interfície serà notable per a l'usuari.

Les tecnologies implementades en el marc del projecte RenderingNG canvien completament l'enfocament de la composició i us permeten utilitzar de manera adaptativa diferents tecnologies per optimitzar els càlculs a la GPU i la CPU en relació a parts individuals de les pàgines, tenint en compte característiques com la resolució de pantalla i la freqüència d'actualització. , així com la presència en el sistema de suport per a APIs gràfiques avançades, com Vulkan, D3D12 i Metall. Alguns exemples d'optimitzacions inclouen l'ús actiu de les textures de la GPU de la memòria cau i la representació dels resultats de parts de les pàgines web, així com tenir en compte només l'àrea de la pàgina visible per l'usuari quan es renderitza (no té sentit representar parts de la pàgina web). pàgines cobertes per altres continguts).

Un element important de RenderingNG també és aïllar el rendiment quan es processen diferents parts de les pàgines, per exemple, per aïllar el càlcul associat amb la publicació d'anuncis en iframes, la visualització d'animacions, la reproducció d'àudio i vídeo, el desplaçament de contingut i l'execució de JavaScript.

Resultats d'optimització de Chromium implementats pel projecte RenderingNG

Tècniques d'optimització implementades:

  • Chrome 94 ofereix el mecanisme CompositeAfterPaint, que proporciona la composició de parts de pàgines web representades per separat i us permet escalar dinàmicament la càrrega de la GPU. Segons les dades de telemetria de l'usuari, el nou sistema de composició va reduir la latència de desplaçament en un 8%, va augmentar la capacitat de resposta de l'experiència de l'usuari en un 3%, va augmentar la velocitat de renderització en un 3%, va reduir el consum de memòria de la GPU en un 3% i va allargar la vida de la bateria en un 0.5%.
  • GPU Raster, un motor de rasterització del costat de la GPU, es va introduir a totes les plataformes el 2020 i ha accelerat els punts de referència de MotionMark en un 37% de mitjana i els punts de referència relacionats amb HTML un 150%. Aquest any, GPU Raster s'ha millorat amb la possibilitat d'utilitzar l'acceleració del costat de la GPU per renderitzar els elements Canvas, donant lloc a una representació de contorns un 1000% més ràpida i a referents de MotionMark 1.2 un 130% més ràpids.
  • LayoutNG és un redisseny complet dels algorismes de disseny d'elements de pàgina destinats a augmentar la fiabilitat i la predictibilitat. Està previst que el projecte es porti als usuaris aquest any.
  • BlinkNG: refactorització i neteja del motor Blink, dividint les operacions de renderització en fases executades per separat per millorar l'eficiència de la memòria cau i simplificar la representació mandrosa, tenint en compte la visibilitat dels objectes a la finestra. Està previst que les obres finalitzin aquest any.
  • Moure els controladors de desplaçament, animació i descodificació d'imatges a fils separats. El projecte es desenvolupa des de l'any 2011 i aquest any ha aconseguit la capacitat d'exportar transformacions animades CSS i animacions SVG a fils separats.
  • VideoNG és un motor eficient i fiable per reproduir vídeos a pàgines web. Aquest any, s'ha implementat la possibilitat de mostrar contingut protegit en resolució 4K. El suport HDR es va afegir anteriorment.
  • És a dir: processos separats per a la rasterització (OOP-R - Ràster fora de procés) i la representació (OOP-D - Compositor de visualització fora de procés), que separen la representació de la interfície del navegador de la representació del contingut de la pàgina. El projecte també està desenvolupant el procés SkiaRenderer, que utilitza API de gràfics específiques de la plataforma (Vulkan, D3D12, Metal). El canvi va permetre reduir 6 vegades el nombre d'errors per problemes en els controladors de gràfics.

Font: opennet.ru

Afegeix comentari