必知!Firefox即將發(fā)生的四大巨變
譯文【51CTO.com快譯】Mozilla的野心是很難忽視的。Servo作為一款Web渲染引擎產(chǎn)品,針對(duì)現(xiàn)代化多核驅(qū)動(dòng)的Web而設(shè)計(jì)。在Mozilla團(tuán)隊(duì)開發(fā)Servo項(xiàng)目的過(guò)程中,Rust這種令人印象深刻的新式編程語(yǔ)言作為一款新的子產(chǎn)品出現(xiàn)在人們面前。但是,許多人對(duì)該項(xiàng)目的細(xì)節(jié)尚不清楚——特別是Mozilla試圖加速什么內(nèi)容及如何加速這方面的信息。
接下來(lái),將介紹的是Firefox引擎下發(fā)生的四個(gè)最重要的變化。這些內(nèi)容以Quantum項(xiàng)目中子項(xiàng)目的方式捆綁在一起。讓我們來(lái)了解每一個(gè)子項(xiàng)目對(duì)于Web開發(fā)人員和普通用戶都將意味著什么。
1. Servo
何謂Servo?它是Mozilla火狐瀏覽器的下一代布局引擎,是使用Rust語(yǔ)言開發(fā)的。
為什么它如此重要:Servo是最重要的引擎工具,這可以從三個(gè)方面來(lái)解釋。***,它的設(shè)計(jì)旨在利用多核CPU技術(shù),以便更快地進(jìn)行頁(yè)面內(nèi)容渲染;這樣一來(lái),即使具有復(fù)雜布局的Web頁(yè)面也會(huì)流暢地渲染。第二,它使用Rust語(yǔ)言來(lái)保證內(nèi)存安全而不會(huì)犧牲速度。(沒有人會(huì)喜歡一個(gè)不穩(wěn)定的瀏覽器,但也沒誰(shuí)想使用一個(gè)緩慢的瀏覽器)。第三,這個(gè)引擎的設(shè)計(jì)目的意在緩解構(gòu)建和維護(hù)火狐瀏覽器的關(guān)鍵內(nèi)核的過(guò)程,這要?dú)w功于Rust語(yǔ)言的高度現(xiàn)代化的軟件包管理和構(gòu)建系統(tǒng)。
因此,那些想要貢獻(xiàn)于未來(lái)版本的火狐瀏覽器的用戶或利用這些組件的用戶,可能都需要使用Rust開始加速。借助于Rust的支持社區(qū)、吸收易用性日益受到重視,這個(gè)項(xiàng)目應(yīng)該是不成問(wèn)題的。
2. WebRender/Quantum渲染器
何謂WebRender?它是Servo的經(jīng)GPU優(yōu)化的渲染組件。
為什么它如此重要?現(xiàn)代化設(shè)備中的所有硬件,包括***的智能手機(jī),往往都裝配了GPU芯片,這樣設(shè)計(jì)的目的是想減輕渲染3D和2D圖像的繁重工作。如果實(shí)際渲染組件還是一個(gè)瓶頸(即WebRender所承擔(dān)的任務(wù)部分),那么Servo的多核Web布局引擎不會(huì)提供太大的現(xiàn)實(shí)世界速度。
表面上來(lái)看,WebRende的設(shè)計(jì)目的是為了與Servo協(xié)同工作。也就是說(shuō),它可以應(yīng)用在任何需要后端渲染的項(xiàng)目中,這在很大程度上類似于Servo重用作包括火狐瀏覽器在內(nèi)的項(xiàng)目的Web引擎。
3. Quantum Compositor
何謂Quantum Compositor?此工具的主要目的是將GPU合成工作獨(dú)立出系統(tǒng)渲染主進(jìn)程。
為什么它如此重要:根據(jù)來(lái)自Mozilla官方的消息,很多火狐瀏覽器版本崩潰的原因主要是由于與圖形驅(qū)動(dòng)程序進(jìn)行了錯(cuò)誤的交互作用而招致的。通過(guò)把與GPU交互的代碼重定位進(jìn)它自己的進(jìn)程中,這些崩潰就可以被控制住而不至使整個(gè)瀏覽器倒下。這也是將操作并行化的另一種方法,因?yàn)橐粋€(gè)單獨(dú)的處理合成的進(jìn)程可以在一個(gè)單獨(dú)的CPU核上運(yùn)行(如果有可用的CPU核的話)。
巧的是,蘋果公司的Chrome瀏覽器也使用類似的方法,因此像WebGL這樣具有***難度的問(wèn)題也只會(huì)引發(fā)當(dāng)前Web頁(yè)上的一條警告信息而不會(huì)造成整個(gè)瀏覽器崩潰。目前,這個(gè)工具只是負(fù)責(zé)處理一個(gè)Web頁(yè)面上的組件的合成任務(wù),還沒有承擔(dān)像加速視頻播放(一次一個(gè)任務(wù))這樣的艱巨工作。
4. Quantum DOM
何謂Quantum DOM?這是一個(gè)軟件項(xiàng)目,通過(guò)智能處理Web頁(yè)面上的內(nèi)容支持加載和讀取Web內(nèi)容并使之盡量減少擁擠。
為什么它如此重要?大多數(shù)Web開發(fā)人員都會(huì)高度警覺甚至是增量式的變化——橫幅廣告加載,在線圖像加載,等等——都會(huì)降低Web頁(yè)面的響應(yīng)性,從而影響頁(yè)面內(nèi)容的渲染。天真的解決方案是借助多內(nèi)核技術(shù)實(shí)現(xiàn)這些操作的并行化處理,但是此方案會(huì)導(dǎo)***大地吞噬系統(tǒng)內(nèi)存。
QuantumDOM,正如Bill McCloskey在他博客上所解釋的,嘗試通過(guò)用戶空間線程而不是進(jìn)程來(lái)協(xié)作調(diào)度頁(yè)面DOM變化;這也最終導(dǎo)致可能在網(wǎng)頁(yè)自己的線程上運(yùn)行單個(gè)幀。如果處理恰當(dāng),這將允許更復(fù)雜的頁(yè)面布局,而占用更少的性能瓶頸。
上述方案最難的部分就是弄清楚哪些任務(wù)可以最有效地組合在一起。這個(gè)項(xiàng)目可能會(huì)持續(xù)很長(zhǎng)一段時(shí)間才會(huì)完善起來(lái),直到Servo成為一個(gè)標(biāo)準(zhǔn)配置項(xiàng)目。
原文標(biāo)題:4 big changes coming soon to Firefox,作者:Serdar Yegulalp
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】