轉帖|行業資訊|編輯:龔雪|2017-02-06 11:17:54.000|閱讀 653 次
概述:隨著Rust的成熟,Mozilla已決心豪賭。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Mozilla將 Firefox的命運與Rust語言捆綁起來。Rust是Mozilla主導開發的注重安全、速度和并發的系統級編程語言,最新版本為1.15。隨著Rust的成熟,Mozilla開始嘗試用Rust開發Firefox的組件,其中包括核心引擎Servo/Project Quantum。自v53起,Firefox將需要Rust構建,這一要求對大多數用戶沒有影響,但會影響少部分Rust及其依賴的LLVM編譯器不支持的平臺和架構,比如IBM的S390架構。
Mozilla的Ted Mielczarek稱,他們通常不會有意讓維護Firefox的人的生活變得更困難,但使用Rust的優勢太大了,他們不想讓很少用戶的平臺限制對Rust的采用。
除此之外,Firefox引擎還將發生四大巨變:
1. Servo
Servo是Mozilla火狐瀏覽器的下一代布局引擎,是使用Rust語言開發的。其重要性可以從三個方面來解釋。第一,它的設計旨在利用多核CPU技術,以便更快地進行頁面內容渲染;這樣一來,即使具有復雜布局的Web頁面也會流暢地渲染。第二,它使用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核的話)。
4. Quantum DOM
Quantum DOM是一個軟件項目,通過智能處理Web頁面上的內容支持加載和讀取Web內容并使之盡量減少擁擠。大多數Web開發人員都會高度警覺甚至是增量式的變化——橫幅廣告加載,在線圖像加載,等等——都會降低Web頁面的響應性,從而影響頁面內容的渲染。天真的解決方案是借助多內核技術實現這些操作的并行化處理,但是此方案會導致極大地吞噬系統內存。
QuantumDOM,正如Bill McCloskey在他博客上所解釋的,嘗試通過用戶空間線程而不是進程來協作調度頁面DOM變化;這也最終導致可能在網頁自己的線程上運行單個幀。如果處理恰當,這將允許更復雜的頁面布局,而占用更少的性能瓶頸。(來源:solidot)
更多行業資訊,更新鮮的技術動態,盡在。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn