Zhvilluesit e Chromium kanë bërë një përmbledhje të parë të projektit RenderingNG, i nisur 8 vjet më parë, i cili ka si qëllim të punojë vazhdimisht për rritjen e performancës, besueshmërisë dhe shkallëzueshmërisë së Chrome.
Për shembull, optimizimet e shtuara në lëshimin e Chrome 94 në krahasim me Chrome 93 lejuan një reduktim prej 8% të vonesave gjatë përpunimit të faqeve dhe një rritje prej 0.5% të kohës së përdorimit nga bateria. Duke marrë parasysh madhësinë e bazës së përdoruesve të Chrome, këto tregues në një shkallë globale përkthehen në kursim më shumë se 1400 vjet kohë procesori çdo ditë. Krahasuar me versionet e kaluara, Chrome moderne rendit grafikat më shpejt me më shumë se 150% dhe është 6 herë më pak i prirur për rrëzime në GPU-të e problemeve të pajisjeve.
Mes metodave të realizuara për të arritur një rritje të performancës, vëreni paralelizimin e operacioneve të rasterizimit të pikseleve të ndryshme në anën e GPU-së dhe ndarjen më aktive të përpunuesve në bërthamë të ndryshme të CPU-së (ekzekutimi i JavaScript, përpunimi i rrokullisjes së faqes, dekodimi i videove dhe imazheve, parapërgatitja e përmbajtjes). Një faktor kufizues në paralelizimin aktiv është rritja e ngarkesës në CPU, e cila reflektohet në rritjen e temperaturës dhe rritjen e konsumit të energjisë, prandaj është e rëndësishme të arrihet një ekuilibër optimal midis performancës dhe konsumit të energjisë. Për shembull, gjatë funksionimit me bateri, mund të sakrifikohet shpejtësia e vizatimit, por nuk mund të sakrifikohet përpunimi i rrokullisjes në një rrjedhë të veçantë, pasi ulja e përgjigjes së ndërfaqes do të bëhet e dukshme për përdoruesin.
Teknologjitë e realizuara në kuadër të projektit RenderingNG ndryshojnë plotësisht qasjen ndaj kompozimin dhe lejojnë angazhimin adaptiv të teknologjive të ndryshme të optimizimit të llogaritjeve në GPU dhe CPU në lidhje me pjesë të veçanta të faqeve, duke marrë parasysh karakteristika të tilla si rezolucioni dhe frekuenca e rifreshimit të ekranit, si dhe praninë në sistem të mbështetjes për API-të e avancuara grafike, si Vulkan, D3D12 dhe Metal. Si shembuj optimizimesh, përmendet përdorimi aktiv i memorizimit të teksteve në GPU dhe rezultateve të vizatimit të pjesëve të faqeve web, si dhe marrja në konsideratë vetëm e zonës së faqes, e cila është e dukshme për përdoruesin (nuk ka kuptim të kryhet vizatimi i pjesëve të faqes 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, për të izoluar llogaritjet e lidhura me shfaqjen e reklamave në blloqet iframe, shfaqjen e animacioneve, luajtjen e tingujve dhe videove, rrotullimin e përmbajtjes dhe ekzekutimin e JavaScript-it.

Teknikat e realizuara të optimizimit:
- Në Chrome 94 është propozuar mekanizmi CompositeAfterPaint, i cili siguron kompozimin e pjesëve të vizatuara të faqeve web ndaras dhe lejon rritjen dinamike të ngarkesës në GPU. Sipas të dhënave të mbledhura nga përdoruesit përmes telemetrisë, përdorimi i sistemit të ri të kompozimit ka reduktuar vonesat gjatë rrotullimit me 8%, ka rritur përgjegjshmërinë e ndërveprimit me përdoruesin me 3%, ka rritur shpejtësinë e vizatimit me 3%, ka ulur konsumin e memories GPU me 3% dhe ka rritur kohën e qëndrueshmërisë me 0.5%.
- GPU Raster — mekanizmi i rasterizimit anësor të GPU-së, u implementua për të gjitha platformat në vitin 2020 dhe lehtësoi kalimin e testeve MotionMark mesatarisht me 37%, ndërsa kategoritë e lidhura me HTML me 150%. Në këtë vit, GPU Raster u pasurua me mundësinë e përdorimit të akcelerimit anësor të GPU-së për vizatimin e elementeve Canvas, që rezultoi në një rritje të vizatimit të kontureve me 1000% dhe përfundimin e testeve MotionMark 1.2 me 130%.
- LayoutNG — një rishikim i plotë i algoritmeve të vendosjes së elementeve të faqeve, me qëllim të rritjes së besueshmërisë dhe parashikueshmërisë. Projekti planifikohet të vihet në dispozicion për përdoruesit në këtë vit.
- BlinkNG — ristrukturimi dhe pastrimi i motorit Blink me ndarjen e operacioneve të vizatimit në faza të kryera veçmas për të rritur efikasitetin e memorizimit dhe për të thjeshtuar vizatimin e vonuar duke marrë parasysh dukshmërinë e objekteve në dritare. Puna planifikohet të përfundojë në këtë vit.
- Shkëputja në rrjedha të veçanta të përpunuesve të rrotullimit, animacioneve dhe dekodimit të imazheve. Projekti po zhvillohet që nga viti 2011 dhe në këtë vit arriti mundësinë e shkëputjes në rrjedha të veçanta për transformimet animuese CSS dhe animacionin SVG.
- VideoNG — një motor efikas dhe i besueshëm për luajtjen e videove në faqet web. Në këtë vit realizohet mundësia e shfaqjes së përmbajtjes së mbrojtur me rezolucion 4K. Më parë ishte shtuar mbështetje për HDR.
- Viz — procese të veçanta për rasterizim (OOP-R — Rasterizim jashtë procesit) dhe për përshkrimin (OOP-D — Pjesë përshkruese jashtë procesit), që ndajnë përshkrimin e ndërfaqes së shfletuesit nga përshkrimi i përmbajtjes së faqeve. Projekti gjithashtu zhvillon procesin SkiaRenderer, që përdor API grafike specifike për platforma të ndryshme (Vulkan, D3D12, Metal). Ky ndryshim ka lejuar të ulet numri i çarjeve nga problemi në drivarët grafikë gati 6 herë.
Burimi: opennet.ru
