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