Szerző: Gálffy Csaba

2018. január 25. 09:55

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

Ú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

Mindent vivő munkahelyek

Mindig voltak olyan informatikai munkahelyek, melyek nagyon jól fekszenek az önéletrajzban.

Mindent vivő munkahelyek Mindig voltak olyan informatikai munkahelyek, melyek nagyon jól fekszenek az önéletrajzban.

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.

Kubernetes képzéseinket már közel 300 szakember végezte el. A nagy sikerre való tekintettel a tanfolyamot aktualizált tananyaggal június 18-án újra elindítjuk! A 8 alkalmas, élő képzés képzés órái utólag is visszanézhetők, és munkaidő végén kezdődnek.

a címlapról