Nagyot lépett előre a Firefox

Az új verzió például vállalati csoportházirend támogatást, Web Authentication API és ezzel USB token támogatást hoz.

A Quantum sebessége I.

Magánemberként is fontos a gyors böngészés, de céges szinten akár forintosítható is, mit jelent a tavaly megújult Firefox, amely a Quantum becenevet kapta. A tavaly legalább kétszeresére gyorsult működés, és a versenytársakhoz képest mért 30%-kal kisebb memóriahasználat azt jelenti, hogy a nap végére akár 15 perccel előbb végezhet a dolgozó a feladatával, és több memória marad a böngésző mellett futtatott Office-alkalmazásnak, vagy célszoftvereknek.

Ezeknek a fejlesztéseknek a gyökere egészen 2012-ig vezethető vissza, amikor megjelent a Servo projekt, amelyet én 2013-ban láttam, akkor még erősen fejlesztési változatban. A fejlesztéseket az a felismerés vezette, hogy a Firefox böngészőmotorja elavulttá vált, mert nem támogatja megfelelően a modern többmagos processzorokat. Ez volt a Gecko motor réges-régi jellemzője, amelyet még a Netscape időkből hozott magával:

A Gecko motor teljes újraírása helyett az egyes részek újraírását és kicserélését kezdték meg a Mozilla fejlesztői a Servo projekt által végzett kutatómunka során. A Electrolisys 2016-ban elhozta az alkalmazás és a tartalom folyamatok különválasztását. Tehát a weboldalak csoportonként külön-külön CPU-magot használhattak. Így a CPU-k hatékonyabb használata megvalósult, ám a rendelkezésre álló erőforrásokat jobban is ki lehet használni. De ezeket a folyamatokat is lehetett jobban párhuzamosítani. A Quantum projekt elsődleges célja, hogy a elérhetővé tegye az erős párhuzamosságra és memóriabiztonságra kihegyezett Rust nyelven íródott, fejlesztői állapotú Servo böngészőmotor komponenseit a végfelhasználóknak szánt Firefox böngészőben.

A Firefox fejlesztői külön szálba fejtették át a böngészőmotor grafikus leképzőjét. A központi rész szétbontásával a grafikus megjelenítés elemei külön folyamatba kerültek. Ez a rész felelős annak eldöntéséért, hogy mi az, ami a képernyőn egy oldalból látszani fog, valamint ennek leképzéséért is. Ez úgy lehet elképzelni, ahogy egy több réteget tartalmazó képet a képszerkesztő egymásra lapít egyetlen képre. A modern idők elvárásainak megfelelően a Quantum Compositor már elsődlegesen GPU-t használ erre a feladatra, villámgyorsan. A Firefox 53-as verziójában megjelenő újdonságot a hasonló szellemben párhuzamosított CSS leképző, a Stylo követte. Ekkor, a Firefox 57-es verziójával vette fel a Firefox Quantum nevet. A Stylo feladata a HTML kódra aggatott CSS dekorációk párhuzamos leképzése.

A most megjelent Firefox 60 újdonsága, hogy a már említett szétválasztott tartalmi és alkalmazási folyamatokban az alkalmazásoldalon is a Quantum CSS, azaz a Stylo elnevezésű fejlesztés jeleníti meg a formázásokat. A mobilos verzió újdonsága, hogy bevezeti a Quantum CSS-t használatát a mobil platformokon is.

Az elmúlt verziók fontos újdonsága volt még a Off-Main-Thread Painting (OMTP) fejlesztés, aminek célja, hogy a rajzolás folyamatát egy külön szálba szervezzék. Maga az elemek összegyűjtése, rétegekbe szervezése, a rétegek leképzése és a rétegek egy képpé történő összeállítása nagyon teljesítményigényes feladat. A régi megoldásban ez így valósult meg:

Firefox

Ennek a komplikált feladatnak az elvégzésére 16 ms idő van, ha a Firefox fejlesztői által megcélzott 60 FPS sebességet tartani szeretnék. És akkor ebbe az időbe még bele kell férnie a JavaScript-kódok futtatásának, a felhasználói események feldolgozásának, a JavaScript szemétgyűjtésén kívül számos más feladatnak is.

Mint az látható a végső leképzés már független szálként fut, de a folyamatok közül például a rajzolás még több erőforrást köthet le. Különösen akkor ha a felbontást növeljük a kor elvárásainak megfelelően a 4K irányába.

Firefox

A gyakorlatban a régi elrendezésben sokkal tovább tartott, míg egy képkocka teljesen elkészült. Ha ez az idő hosszabb volt, mint a VSYNC-ek különbsége, akkor az a képkocka nem változik, megakasztva a folyamatos animációkat.

Firefox
[+]

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények