Mozilla Quantum Project on Firefoxi uus mootor
Mõni päev tagasi tutvustas Mozilla oma uut projekti "Quantum", mille eesmärk on pakkuda Firefoxi brauserile uut, oluliselt täiustatud mootorit. See on Gecko-põhine ja peaks tänu suurenenud Gecko jõudlusele tooma palju täiustusi samaaegsus ja paralleelsus, väiksem latentsusaeg ja parem usaldusväärsus, mida pakub Rust koodikeel ja selle Funktsioonid.
Quantum on laias laastus jagatud neljaks erinevaks projektiks.
Quantum CSS-i projekt asendab Gecko CSS-mootori Servo omaga. Servo on Gecko pikaajaline asendus, mis põhineb kaasaegsel, suure jõudlusega paralleelse arhitektuuriga.
Quantum DOM projekt muudab Gecko tundlikumaks, eriti kui taustal on avatud palju vahekaarte. Kui Quantum DOM on lõpetatud, käitatakse erinevate vahekaartide (ja võib-olla ka erinevate iframe'ide) JS-koodi eraldi ühiselt ajastatud lõimedes; mõne taustakaardi kood ei tööta üldse kunagi.
Quantum Compositor liigutab Gecko komposiidi oma protsessi. Kuna graafikadraiveri ebastabiilsus on peamine Firefoxi krahhide allikas, eeldame, et GPU-ga suhtleva koodi liigutamine oma protsessi muudab Firefoxi stabiilsemaks.
Lõpuks asendab Quantum Rendering Gecko graafika alamsüsteemi Servo omaga, mida nimetatakse WebRenderiks. Servo kasutab GPU-d tõhusamalt kui Gecko, juhtides seda rohkem nagu mäng kui veebibrauser.
Need projektid on erinevas valmimisjärgus. Quantum Compositor on üsna kaugel, samas kui Quantum Rendering alles algab. Projektide osas on endiselt palju ebakindlust.
Kvant-DOM
Quantum DOM käivitab erinevate vahelehtede JavaScripti koodi paralleelsetes lõimedes, mis võimaldab paljude avatud vahelehtede korral brauseri jõudlust suurendada. Lõimede vahel vahetamiseks kasutatakse konteksti sujuvaks muutmiseks käigupealt spetsiaalset planeerijat. Paljud täiustused tulevad Javascripti koodi raskete skriptide ja lõpmatute silmuste püüdmiseks.
Kvantvoog
Quantum Flow on osa projektist Quantum, mis on pühendatud brauseri kasutajaliidese täiustatud optimeerimisele.
Vaadake järgmist videot:
Allikas: Bill McCloskey ajaveeb.