Mellékleteink: HUP | Gamekapocs
Keres

Megint nagyot gyorsul a Firefox - ígérik a készítők

Gálffy Csaba, 2018. január 25. 09:55

Új Firefox-kiadás jelentkezett, és az új divatnak megfelelően hoz fejlesztést bőséggel. Lássuk az érdekesebb újdonságokat!

Megérkezett (és a legtöbb felhasználónál már automatikusan frissült is) a Mozilla Firefox új kiadása, az 58-as. A fejlesztések között olyanok szerepelnek, mint az átalakított könyvjelző-kezelés, vagy az androidos verzió Progressive Web App-támogatása.

Kiszervezett rajzoló

Az egyik legfontosabb új fejlesztés az Off-Main-Thread Painting (OMTP), amely nevének megfelelően a weboldal kirajzolását (raszterizálását) egy külön threadbe helyezi ki, ezzel a négy lépcsős folyamatból immár kettő a fő programszálon kívül fut. Az előnyök a szokásosak: aszinkron raszterizálással sokkal könnyebben érhető el az áhított 60 FPS működés, különösen nagyobb felbontású (például 4K) monitorok esetében - mondja blogposztjában David Anderson, a Mozilla fejlesztője.

painting

Előtte...

painting2

...és utána.

A fő programszál kezel ugyanis a grafikán kívül szinte mindent, a bemenetet (egér, billentyűzet, érintőkijelző), futtatja a JavaScript kódot és annak garbage collectionjét, és kezeli a megjelenítést - és minderre képkockánként 16 ezredmásodperc áll rendelkezésre. A raszterizálás "kiszervezésével" amikor összeáll a képhez szükséges parancsok listája, akkor azt a fő programszál át tudja adni a rajzoló szálnak és vissza tud térni az összes többi feladata elvégzéséhez, így az időnyomás enyhül valamelyest.

Az új folyamatban a fő thread állítja össze a látható elemek listáját, és létrehozza az ezekért felelős primitíveket. Az egyes elemeket rétegekhez rendeli, függően attól, hogy csak görgetni, vagy animálni is kell - a látható elemekhez textúra tartozik, amelyet frissíteni kell amikor a lista elemei változnak. A harmadik lépés a raszterizáció, amikor az elemek(hez rendelt kód) kirajzolják magukat a megfelelő rétegre és végül a kompozitor összeállítja a végső képet. Ez utóbbi lépcső már korábban saját szálat kapott, a fejlesztők most új döntöttek, hogy a raszterizálásnak is mennie kell.

Érdekesség, hogy ezt viszonylag egyszerűen el lehetett érni: az elemek kirajzolását jelenleg is egy saját API, a Moz2D végzi, amely a szabványos és rendszerspecifikus grafikus API-kat (Skia, Cairo, Direct2D) kezeli és rejti el. Ez elé került egy új réteg, amely a kiadott parancsokat csak rögzíti egy listán, majd ezt a listát adja át végrehajtásra az új rajzoló szálnak.

oldvsync

newvsync

Az eredmény: eltűnik az akadozás egy újabb forrása a Firefoxból, a böngésző még gyengébb gépeken is sokkal kevesebb frame-et dob el, ami különösen okostelefonokon és régebbi PC-ken hoz érdemi javulást. Az új megközelítés hatékonyabb is tud lenni, míg korábban (a V-Sync miatt) sokszor nem csinált semmit a megjelenítő, a három szálra szétszedve sokkal folyamatosabb a munka. A saját fejlesztésű tesztek eredménye is ezt mutatja: a kirajzolt kockák száma (FPS) mintegy 30 százalékkal (!) nőtt Direct2D-t használva, a Skia esetében 25 százalékos az emelkedés.

Van még tovább

A következő lépések is kirajzolódnak az elvégzett munkából. "Immár van aszinkron rajzolásunk, logikus, hogy elkezdjünk dolgozni a párhuzamos rajzoláson." - mondja Anderson. Ez csempézést jelent, vagyis a kijelzőt több téglalapra osztani, majd ezeket a rendszer kapacitása függvényében párhuzamosan feldolgozni. Ez macOS-en már működik, a Windows esetében azonban még csak most indul a munka.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.
A legnagyobb hazai termékfejlesztési konferencia visszatér: 80 előadó, 1000 látogató, dedikált workshop nap, 6 szekció a UX-től az IoT-n át, egészen az AI-ig.