RenderingNG-projektin toteuttamat kromin optimointitulokset

Chromium-kehittäjät ovat koonneet yhteenvedon ensimmäisistä tuloksista 8 vuotta sitten käynnistetystä RenderingNG-projektista, joka tähtää jatkuvaan työhön Chromen suorituskyvyn, luotettavuuden ja laajennettavuuden lisäämiseksi.

Esimerkiksi Chrome 94:ään lisätyt optimoinnit verrattuna Chrome 93:een johtivat 8 %:n lyhenemiseen sivun renderöintiviiveessä ja 0.5 %:n lisäyksen akun kestoon. Chromen käyttäjäkunnan koon perusteella tämä merkitsee maailmanlaajuista yli 1400 150 vuoden prosessoriajan säästöä joka päivä. Verrattuna aikaisempiin versioihin nykyaikainen Chrome hahmontaa grafiikan yli 6 % nopeammin ja on kuusi kertaa vähemmän herkkä GPU-ohjainten kaatumisille ongelmallisissa laitteistoissa.

Toteutettujen menetelmien joukossa suorituskyvyn parantamiseksi havaitsimme eri pikseleiden rasterointitoimintojen rinnakkaistamisen GPU-puolella ja prosessorien aktiivisemman jakautumisen eri prosessoriytimille (JavaScriptin suorittaminen, sivun vierityksen käsittely, videoiden ja kuvien dekoodaus, proaktiivinen renderöinti sisältö). Rajoittava tekijä aktiiviselle rinnakkaisuudelle on CPU:n kasvava kuormitus, joka heijastuu nousevana lämpötilana ja lisääntyneenä virrankulutuksena, joten on tärkeää saavuttaa optimaalinen tasapaino suorituskyvyn ja virrankulutuksen välillä. Esimerkiksi akkuvirralla käytettäessä voit uhrata renderöintinopeuden, mutta et voi uhrata vierityskäsittelyä erillisessä säikeessä, koska käyttöliittymän reagointikyvyn heikkeneminen on käyttäjän havaittavissa.

RenderingNG-projektin puitteissa toteutetut tekniikat muuttavat täysin lähestymistapaa kompositioon ja mahdollistavat adaptiivisesti erilaisten tekniikoiden optimoinnin GPU:ssa ja CPU:ssa suhteessa sivun yksittäisiin osiin ottaen huomioon sellaiset ominaisuudet kuin näytön resoluutio ja virkistystaajuus. , sekä kehittyneiden grafiikkasovellusliittymien, kuten Vulkan, D3D12 ja Metal, tukijärjestelmässä. Esimerkkejä optimoinneista ovat GPU-tekstuurien välimuistin aktiivinen käyttö ja verkkosivujen osien renderöintitulokset sekä vain käyttäjälle näkyvän sivun alueen huomioiminen renderöinnin aikana (osia sivusta ei ole järkevää renderöidä). sivut, jotka ovat muun sisällön kattamia).

Tärkeä osa RenderingNG:tä on myös eristää suorituskykyä käsiteltäessä sivun eri osia, esimerkiksi eristää laskenta, joka liittyy mainosten näyttämiseen iframe-kehyksissä, animaatioiden näyttämiseen, äänen ja videon toistamiseen, sisällön vierittämiseen ja JavaScriptin suorittamiseen.

RenderingNG-projektin toteuttamat kromin optimointitulokset

Toteutetut optimointitekniikat:

  • Chrome 94 tarjoaa CompositeAfterPaint-mekanismin, joka mahdollistaa verkkosivujen erikseen renderöityjen osien yhdistämisen ja mahdollistaa GPU:n kuormituksen dynaamisen skaalauksen. Käyttäjien telemetriatietojen mukaan uusi kompositiojärjestelmä vähensi vieritysviivettä 8 %, lisäsi käyttökokemuksen reagointikykyä 3 %, lisäsi renderöintinopeutta 3 %, vähensi GPU-muistin kulutusta 3 % ja pidensi akun käyttöikää 0.5 %.
  • GPU Raster, GPU-puolen rasterointimoottori, otettiin käyttöön kaikilla alustoilla vuonna 2020, ja se on kiihdyttänyt MotionMarkin vertailuarvoja keskimäärin 37 % ja HTML:ään liittyviä vertailuarvoja 150 %. Tänä vuonna GPU-rasteria parannettiin kyvyllä käyttää GPU-puolen kiihdytystä Canvas-elementtien hahmontamiseen, mikä johti 1000 % nopeampaan ääriviivojen renderöintiin ja 1.2 % nopeampaan MotionMark 130 -vertailuarvoihin.
  • LayoutNG on sivuelementtien asettelualgoritmien täydellinen uudelleensuunnittelu, jonka tarkoituksena on lisätä luotettavuutta ja ennustettavuutta. Projekti on tarkoitus tuoda käyttäjille tänä vuonna.
  • BlinkNG - Blink-moottorin refaktorointi ja puhdistus, renderöintitoimintojen jakaminen erikseen suoritettaviin vaiheisiin välimuistin tehokkuuden parantamiseksi ja laiskan renderoinnin yksinkertaistamiseksi ottaen huomioon objektien näkyvyys ikkunassa. Työn on määrä valmistua tämän vuoden aikana.
  • Vieritys-, animaatio- ja kuvanpurkukäsittelijöiden siirtäminen erillisiksi säikeiksi. Projektia on kehitetty vuodesta 2011, ja tänä vuonna se saavutti mahdollisuuden viedä animoituja CSS-muunnoksia ja SVG-animaatioita erillisiin säikeisiin.
  • VideoNG on tehokas ja luotettava moottori videon toistamiseen verkkosivuilla. Tänä vuonna kyky näyttää suojattua sisältöä 4K-resoluutiolla on otettu käyttöön. HDR-tuki lisättiin aiemmin.
  • Viz - erilliset prosessit rasterointia (OOP-R - Out-of-process Raster) ja renderöintiä varten (OOP-D - Out of Process Display Compositor), jotka erottavat selaimen käyttöliittymän renderöinnin sivun sisällön hahmontamisesta. Projektissa kehitetään myös SkiaRenderer-prosessia, joka käyttää alustakohtaisia ​​grafiikkasovellusliittymiä (Vulkan, D3D12, Metal). Muutos mahdollisti näytönohjainongelmien aiheuttamien kaatumisten vähentämisen kuusinkertaiseksi.

Lähde: opennet.ru

Lisää kommentti