Rezultatet e optimizimit të kromit të zbatuara nga projekti RenderingNG

Zhvilluesit e Chromium kanë përmbledhur rezultatet e para të projektit RenderingNG, të nisur 8 vjet më parë, që synon punën e vazhdueshme për të rritur performancën, besueshmërinë dhe shtrirjen e Chrome.

Për shembull, optimizimet e shtuara në Chrome 94 në krahasim me Chrome 93 rezultuan në një reduktim prej 8% në vonesën e paraqitjes së faqeve dhe një rritje prej 0.5% në jetëgjatësinë e baterisë. Bazuar në madhësinë e bazës së përdoruesve të Chrome, kjo përfaqëson një kursim global prej mbi 1400 vjetësh të kohës së CPU-së çdo ditë. Krahasuar me versionet e mëparshme, Chrome modern i jep grafikat më shumë se 150% më të shpejtë dhe është 6 herë më pak i ndjeshëm ndaj përplasjeve të drejtuesit të GPU-së në harduerin problematik.

Ndër metodat e zbatuara për të arritur përfitime të performancës, ne vumë re paralelizimin e operacioneve të rasterizimit të pikselëve të ndryshëm në anën e GPU-së dhe një shpërndarje më aktive të procesorëve nëpër bërthama të ndryshme të CPU-së (ekzekutimi i JavaScript, përpunimi i lëvizjes së faqeve, dekodimi i videove dhe imazheve, pasqyrimi proaktiv i përmbajtja). Faktori kufizues për paralelizimin aktiv është ngarkesa në rritje në CPU, e cila reflektohet nga rritja e temperaturave dhe rritja e konsumit të energjisë, ndaj është e rëndësishme të arrihet një ekuilibër optimal midis performancës dhe konsumit të energjisë. Për shembull, kur punoni me energji baterie, mund të sakrifikoni shpejtësinë e paraqitjes, por nuk mund të sakrifikoni përpunimin e lëvizjes në një fije të veçantë, pasi ulja e reagimit të ndërfaqes do të jetë e dukshme për përdoruesin.

Teknologjitë e zbatuara në kuadër të projektit RenderingNG ndryshojnë plotësisht qasjen ndaj kompozimit dhe ju lejojnë të përdorni në mënyrë adaptive teknologji të ndryshme për optimizimin e llogaritjeve në GPU dhe CPU në lidhje me pjesët individuale të faqeve, duke marrë parasysh veçori të tilla si rezolucioni i ekranit dhe shpejtësia e rifreskimit , si dhe prania në sistemin e mbështetjes për API-të grafike të avancuara, si Vulkan, D3D12 dhe Metal. Shembuj të optimizimeve përfshijnë përdorimin aktiv të ruajtjes së teksteve të GPU-së dhe paraqitjen e rezultateve të pjesëve të faqeve në internet, si dhe marrjen parasysh vetëm zonën e faqes të dukshme për përdoruesin kur jepet (nuk ka kuptim të jepni pjesë të faqe që mbulohen nga përmbajtje të tjera).

Një element i rëndësishëm i RenderingNG është gjithashtu izolimi i performancës gjatë përpunimit të pjesëve të ndryshme të faqeve, për shembull, izolimi i llogaritjes që lidhet me shfaqjen e reklamave në iframe, shfaqjen e animacioneve, luajtjen audio dhe video, lëvizjen e përmbajtjes dhe ekzekutimin e JavaScript.

Rezultatet e optimizimit të kromit të zbatuara nga projekti RenderingNG

Teknikat e implementuara të optimizimit:

  • Chrome 94 ofron mekanizmin CompositeAfterPaint, i cili siguron përbërjen e pjesëve të paraqitura veçmas të faqeve të internetit dhe ju lejon të shkallëzoni në mënyrë dinamike ngarkesën në GPU. Sipas të dhënave të telemetrisë së përdoruesit, sistemi i ri i kompozimit uli vonesën e lëvizjes me 8%, rriti reagimin e përvojës së përdoruesit me 3%, rriti shpejtësinë e renderimit me 3%, uli konsumin e memories GPU me 3% dhe zgjati jetëgjatësinë e baterisë me 0.5%.
  • GPU Raster, një motor rasterizimi nga ana e GPU, u prezantua në të gjitha platformat në vitin 2020 dhe ka përshpejtuar standardet e MotionMark me një mesatare prej 37% dhe standardet e lidhura me HTML me 150%. Këtë vit, GPU Raster u përmirësua me aftësinë për të përdorur përshpejtimin nga ana e GPU-së për të dhënë elementë të Canvas, duke rezultuar në paraqitje 1000% më të shpejtë të skicës dhe 1.2% më të shpejtë standardet e MotionMark 130.
  • LayoutNG është një ridizajnim i plotë i algoritmeve të paraqitjes së elementeve të faqes që synon rritjen e besueshmërisë dhe parashikueshmërisë. Projekti është planifikuar të sillet për përdoruesit këtë vit.
  • BlinkNG - rifaktorimi dhe pastrimi i motorit Blink, ndarja e operacioneve të renderimit në faza të ekzekutuara veçmas për të përmirësuar efikasitetin e memorizimit dhe për të thjeshtuar paraqitjen dembel, duke marrë parasysh dukshmërinë e objekteve në dritare. Puna parashikohet të përfundojë këtë vit.
  • Lëvizja e mbajtësve të lëvizjes, animacionit dhe dekodimit të imazheve në temat e ndara. Projekti është zhvilluar që nga viti 2011 dhe këtë vit ai arriti aftësinë për të eksportuar transformime të animuara CSS dhe animacione SVG në tema të veçanta.
  • VideoNG është një motor efikas dhe i besueshëm për të luajtur video në faqet e internetit. Këtë vit, është zbatuar aftësia për të shfaqur përmbajtje të mbrojtur në rezolucion 4K. Mbështetja HDR është shtuar më parë.
  • Dmth - procese të ndara për rasterizimin (OOP-R - Raster jashtë procesit) dhe rendering (OOP-D - Përbërësi i shfaqjes jashtë procesit), duke ndarë paraqitjen e ndërfaqes së shfletuesit nga paraqitja e përmbajtjes së faqes. Projekti po zhvillon gjithashtu procesin SkiaRenderer, i cili përdor API-të grafike specifike për platformën (Vulkan, D3D12, Metal). Ndryshimi bëri të mundur uljen e numrit të përplasjeve për shkak të problemeve në drejtuesit e grafikës me 6 herë.

Burimi: opennet.ru

Shto një koment