轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2017-02-06 11:17:54.000|閱讀 653 次
概述:隨著Rust的成熟,Mozilla已決心豪賭。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Mozilla將 Firefox的命運與Rust語言捆綁起來。Rust是Mozilla主導(dǎo)開發(fā)的注重安全、速度和并發(fā)的系統(tǒng)級編程語言,最新版本為1.15。隨著Rust的成熟,Mozilla開始嘗試用Rust開發(fā)Firefox的組件,其中包括核心引擎Servo/Project Quantum。自v53起,F(xiàn)irefox將需要Rust構(gòu)建,這一要求對大多數(shù)用戶沒有影響,但會影響少部分Rust及其依賴的LLVM編譯器不支持的平臺和架構(gòu),比如IBM的S390架構(gòu)。
Mozilla的Ted Mielczarek稱,他們通常不會有意讓維護(hù)Firefox的人的生活變得更困難,但使用Rust的優(yōu)勢太大了,他們不想讓很少用戶的平臺限制對Rust的采用。
除此之外,F(xiàn)irefox引擎還將發(fā)生四大巨變:
1. Servo
Servo是Mozilla火狐瀏覽器的下一代布局引擎,是使用Rust語言開發(fā)的。其重要性可以從三個方面來解釋。第一,它的設(shè)計旨在利用多核CPU技術(shù),以便更快地進(jìn)行頁面內(nèi)容渲染;這樣一來,即使具有復(fù)雜布局的Web頁面也會流暢地渲染。第二,它使用Rust語言來保證內(nèi)存安全而不會犧牲速度。(沒有人會喜歡一個不穩(wěn)定的瀏覽器,但也沒誰想使用一個緩慢的瀏覽器)。第三,這個引擎的設(shè)計目的意在緩解構(gòu)建和維護(hù)火狐瀏覽器的關(guān)鍵內(nèi)核的過程,這要歸功于Rust語言的高度現(xiàn)代化的軟件包管理和構(gòu)建系統(tǒng)。
2. WebRender/Quantum渲染器
WebRender是Servo的經(jīng)GPU優(yōu)化的渲染組件。現(xiàn)代化設(shè)備中的所有硬件,包括最便宜的智能手機(jī),往往都裝配了GPU芯片,這樣設(shè)計的目的是想減輕渲染3D和2D圖像的繁重工作。如果實際渲染組件還是一個瓶頸(即WebRender所承擔(dān)的任務(wù)部分),那么Servo的多核Web布局引擎不會提供太大的現(xiàn)實世界速度。
表面上來看,WebRende的設(shè)計目的是為了與Servo協(xié)同工作。也就是說,它可以應(yīng)用在任何需要后端渲染的項目中,這在很大程度上類似于Servo重用作包括火狐瀏覽器在內(nèi)的項目的Web引擎。
3. Quantum Compositor
Quantum Compositor的主要目的是將GPU合成工作獨立出系統(tǒng)渲染主進(jìn)程。根據(jù)來自Mozilla官方的消息,很多火狐瀏覽器版本崩潰的原因主要是由于與圖形驅(qū)動程序進(jìn)行了錯誤的交互作用而招致的。通過把與GPU交互的代碼重定位進(jìn)它自己的進(jìn)程中,這些崩潰就可以被控制住而不至使整個瀏覽器倒下。這也是將操作并行化的另一種方法,因為一個單獨的處理合成的進(jìn)程可以在一個單獨的CPU核上運行(如果有可用的CPU核的話)。
4. Quantum DOM
Quantum DOM是一個軟件項目,通過智能處理Web頁面上的內(nèi)容支持加載和讀取Web內(nèi)容并使之盡量減少擁擠。大多數(shù)Web開發(fā)人員都會高度警覺甚至是增量式的變化——橫幅廣告加載,在線圖像加載,等等——都會降低Web頁面的響應(yīng)性,從而影響頁面內(nèi)容的渲染。天真的解決方案是借助多內(nèi)核技術(shù)實現(xiàn)這些操作的并行化處理,但是此方案會導(dǎo)致極大地吞噬系統(tǒng)內(nèi)存。
QuantumDOM,正如Bill McCloskey在他博客上所解釋的,嘗試通過用戶空間線程而不是進(jìn)程來協(xié)作調(diào)度頁面DOM變化;這也最終導(dǎo)致可能在網(wǎng)頁自己的線程上運行單個幀。如果處理恰當(dāng),這將允許更復(fù)雜的頁面布局,而占用更少的性能瓶頸。(來源:solidot)
更多行業(yè)資訊,更新鮮的技術(shù)動態(tài),盡在。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn