Rezultatele optimizării Chromium implementate de proiectul RenderingNG

Dezvoltatorii Chromium au rezumat primele rezultate ale proiectului RenderingNG, lansat în urmă cu 8 ani, care vizează munca continuă pentru a crește performanța, fiabilitatea și extensibilitatea Chrome.

De exemplu, optimizările adăugate în Chrome 94 comparativ cu Chrome 93 au dus la o reducere cu 8% a latenței de redare a paginii și o creștere cu 0.5% a duratei de viață a bateriei. Pe baza dimensiunii bazei de utilizatori Chrome, aceasta reprezintă o economie globală de peste 1400 de ani de timp CPU în fiecare zi. În comparație cu versiunile anterioare, Chrome modern redă grafica cu peste 150% mai rapid și este de 6 ori mai puțin susceptibil la blocarea driverului GPU pe hardware-ul problematic.

Printre metodele implementate pentru a obține câștiguri de performanță, am remarcat paralelizarea operațiunilor de rasterizare a diferiților pixeli pe partea GPU și o distribuție mai activă a procesoarelor pe diferite nuclee ale procesorului (executarea JavaScript, procesarea derulării paginilor, decodarea videoclipurilor și imaginilor, redarea proactivă a conţinut). Factorul limitativ pentru paralelizarea activă este încărcarea în creștere a procesorului, care se reflectă prin creșterea temperaturii și consumul de energie crescut, de aceea este important să se realizeze un echilibru optim între performanță și consumul de energie. De exemplu, atunci când rulați pe baterie, puteți sacrifica viteza de redare, dar nu puteți sacrifica procesarea derulării într-un fir separat, deoarece scăderea capacității de răspuns a interfeței va fi vizibilă pentru utilizator.

Tehnologiile implementate în cadrul proiectului RenderingNG schimbă complet abordarea compoziției și vă permit să utilizați în mod adaptiv diferite tehnologii pentru optimizarea calculelor pe GPU și CPU în raport cu părțile individuale ale paginilor, ținând cont de caracteristici precum rezoluția ecranului și rata de reîmprospătare. , precum și prezența în sistemul de suport pentru API-uri grafice avansate, precum Vulkan, D3D12 și Metal. Exemplele de optimizări includ utilizarea activă a texturilor GPU de stocare în cache și randarea rezultatelor unor părți ale paginilor web, precum și luarea în considerare numai a zonei paginii vizibile pentru utilizator la randare (nu are rost să redați părți ale paginii web). pagini care sunt acoperite de alt conținut).

Un element important al RenderingNG este, de asemenea, izolarea performanței atunci când procesează diferite părți ale paginilor, de exemplu, pentru a izola calculele asociate cu difuzarea anunțurilor în cadre iframe, afișarea animațiilor, redarea audio și video, derularea conținutului și executarea JavaScript.

Rezultatele optimizării Chromium implementate de proiectul RenderingNG

Tehnici de optimizare implementate:

  • Chrome 94 oferă mecanismul CompositeAfterPaint, care asigură compunerea părților redate separat ale paginilor web și vă permite să scalați în mod dinamic încărcarea pe GPU. Conform datelor de telemetrie ale utilizatorilor, noul sistem de compoziție a redus latența de defilare cu 8%, a crescut capacitatea de răspuns a experienței utilizatorului cu 3%, a crescut viteza de redare cu 3%, a redus consumul de memorie GPU cu 3% și a prelungit durata de viață a bateriei cu 0.5%.
  • GPU Raster, un motor de rasterizare pe partea GPU, a fost introdus pe toate platformele în 2020 și a accelerat benchmark-urile MotionMark cu o medie de 37% și benchmark-urile legate de HTML cu 150%. Anul acesta, GPU Raster a fost îmbunătățit cu capacitatea de a utiliza accelerația pe partea GPU pentru a reda elementele Canvas, rezultând o redare a conturului cu 1000% mai rapidă și benchmark-uri MotionMark 1.2 cu 130% mai rapide.
  • LayoutNG este o reproiectare completă a algoritmilor de aspect al elementelor de pagină care vizează creșterea fiabilității și predictibilității. Proiectul este planificat să fie adus utilizatorilor în acest an.
  • BlinkNG - refactorizarea și curățarea motorului Blink, împărțind operațiunile de randare în faze executate separat pentru a îmbunătăți eficiența stocării în cache și a simplifica randarea leneșă, ținând cont de vizibilitatea obiectelor din fereastră. Lucrările sunt programate să fie finalizate anul acesta.
  • Mutarea manevrelor de defilare, animație și decodare a imaginilor în fire separate. Proiectul se dezvoltă din 2011 și anul acesta a obținut capacitatea de a exporta transformări animate CSS și animații SVG în fire separate.
  • VideoNG este un motor eficient și de încredere pentru redarea videoclipurilor pe pagini web. Anul acesta, a fost implementată capacitatea de a afișa conținut protejat la rezoluție 4K. Suportul HDR a fost adăugat anterior.
  • Viz - procese separate pentru rasterizare (OOP-R - Out-of-process Raster) și randare (OOP-D - Out of process display compose), separând randarea interfeței browser de redarea conținutului paginii. Proiectul dezvoltă, de asemenea, procesul SkiaRenderer, care utilizează API-uri grafice specifice platformei (Vulkan, D3D12, Metal). Modificarea a făcut posibilă reducerea de 6 ori a numărului de blocări din cauza problemelor driverelor grafice.

Sursa: opennet.ru

Adauga un comentariu