Zhvilluesit e Chromium kanë përmbledhur rezultatet e para të projektit RenderingNG, i cili u lançua 8 vjet më parë dhe ka si qëllim të rrisë vazhdimisht performancën, besueshmërinë dhe zgjerueshmërinë e Chrome.
Për shembull, optimizimet e shtyra në versionin Chrome 94 krahasuar me Chrome 93 lejuan një ulje prej 8% të vonesave gjatë përpunimit të faqeve dhe rritën me 0.5% kohën e jetës së baterisë. Duke marrë parasysh madhësinë e bazës së përdoruesve të Chrome, këto tregues shprehen në një kursim global prej më shumë se 1400 viteve kohë procesori çdo ditë. Krahasuar me versionet e kaluara, Chrome aktual punon më shpejt për më shumë se 150% dhe është 6 herë më pak i ekspozuar ndaj dështimeve në shoferët GPU në pajisje problematike.
Mes metodave të zbatuara për të arritur një rritje të performancës, u veçua paralelizimi i operacioneve të rasterizimit të pikselave të ndryshëm në anën e GPU dhe shpërndarja më aktive e procesorëve në bërthama të ndryshme të CPU (ekzekutimi i JavaScript, përpunimi i skrollimit të faqes, dekodimi i videove dhe imazheve, parashikimi i vizatimit të përmbajtjes). Një faktor frenues gjatë paralelizimit aktiv është rritja e ngarkesës në CPU, e cila reflekton rritjen e temperaturës dhe rritjen e konsumit të energjisë, prandaj është e rëndësishme të arrihet një balancë optimale midis performancës dhe konsumit të energjisë. Për shembull, gjatë punës nga bateria, mund të hiqet dorë nga shpejtësia e vizatimit, por nuk mund të hiqet dorë nga përpunimi i skrollimit në një proces të veçantë, pasi rënia e ndjeshmërisë së ndërfaqes do të bëhet e dukshme për përdoruesin.
Teknologjitë e zbatuara në kuadër të projektit RenderingNG ndryshojnë plotësisht qasjen ndaj kompozitimit 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 rifreskimit të ekranit, si dhe praninë në sistem të mbështetjes për API të avancuara grafike, si Vulkan, D3D12 dhe Metal. Si shembuj optimizimi përmenden përdorimi aktiv i memorie së teksteve GPU dhe rezultateve nga vizatimi i pjesëve të faqeve web, si dhe përllogaritja gjatë vizatimit vetëm të zonave të faqes që janë të dukshme për përdoruesin (nuk ka kuptim të vizatohen pjesë 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 izolimin e llogaritjeve të lidhura me shfaqjen e reklamave në blloqe iframe, shfaqjen e animacioneve, riprodhimin e zërit dhe videos, skrollimin e përmbajtjes dhe ekzekutimin e JavaScript.

Teknikat e realizuara të optimizimit:
- Në Chrome 94 u propozua një mekanizëm CompositeAfterPaint, i cili siguron kompozitim të pjesëve të vizatuara ndaras të faqeve web dhe lejon që ngarkesa në GPU të shkallëzohet dinamikisht. Sipas të dhënave të mbledhura nga përdoruesit përmes telemetrisë, aplikimi i sistemit të ri të kompozitimit ka lejuar një ulje të vonesave gjatë skrollimit me 8%, ka përmirësuar ndjeshmërinë gjatë ndërveprimit me përdoruesin me 3%, ka rritur shpejtësinë e vizatimit me 3%, ka ulur konsumimin e memories GPU me 3% dhe ka zgjatur kohën e jetës së baterisë me 0.5%.
- GPU Raster — mekanizmi i rasterizimit në anën e GPU, u vendos për të gjitha platformat në vitin 2020 dhe lejoi që kalimi në testet MotionMark të përshpejtohet mesatarisht me 37%, dhe kategoritë që lidhen me HTML me 150%. Këtë vit GPU Raster u përmirësua me mundësinë e përdorimit të përshpejtimit në anën e GPU për vizatimin e elementeve Canvas, që çoi në një përshpejtim të vizatimit të kontureve me 1000% dhe kalimin në testet MotionMark 1.2 me 130%.
- LayoutNG — një rishikim i plotë i algoritmeve të vendosjes së elementeve të faqeve, fokusuar në rritjen e besueshmërisë dhe parashikueshmërisë. Projekti planifikohet të arrijë te përdoruesit këtë vit.
- BlinkNG — rifaktorizimi dhe pastrimi i motorit Blink me ndarjen e operacioneve të vizatimit në faza të veçanta për të rritur efikasitetin e mbetjes në memorie dhe për të thjeshtësuar vizatimin e vonuar duke marrë parasysh dukshmërinë e objekteve në dritaren. Puna pritet të përfundojë këtë vit.
- Nxjerrja në procese të veçanta të përpunuesve të skrollimit, animacionit dhe dekodimit të imazheve. Projekti është zhvilluar që nga viti 2011 dhe këtë vit arriti mundësinë e nxjerrjes në procese të veçanta të transformimeve CSS të animuara dhe animacioneve SVG.
- VideoNG — një motor efikas dhe të besueshëm për riprodhimin e videos në faqe web. Këtë vit u realizua mundësia për shfaqjen e përmbajtjes së mbrojtur me rezolucion 4K. Më parë u shtua mbështetje për HDR.
- Viz — procese të veçanta për rasterizimin (OOP-R — Rasterizim jashtë procesit) dhe vizatimin (OOP-D — Kompozitor i vizatimeve jashtë procesit), që ndajnë vizatimin e ndërfaqes së shfletuesit nga vizatimi i përmbajtjes së faqeve. Projekti po zhvillon gjithashtu procesin SkiaRenderer, i cili përdor API grafike specifike për platforma të ndryshme (Vulkan, D3D12, Metal). Ky ndryshim ka lejuar një ulje prej 6 herësh të rastësive për shkak të problemeve me drejtuesit grafikë.
Burimi: opennet.ru
