Web 的「量子」大躍進

Mozilla Taiwan
4 min readNov 2, 2016

--

去年一整年裡,我們對 Firefox 的首要工作就是「Electrolysis (e10s)」專案,要提供多程序 (Multi-process) 的瀏覽體驗,而 Firefox 也的確透過 e10s 大幅提升了效能與安全性;同時更是 Firefox 問世以來的最大變化。我們將在接下來的數個月內,讓 e10s 第一階段擴及所有的 Firefox 桌面版使用者。

在提升效能與安全性方面,我們當然還有很多酷炫想法。Electrolysis 只是我們為 Firefox 後續更重要進化所打下的基礎。

我們定名為「量子 (Quantum)」專案

「量子」專案將開發 Mozilla 新一代的 Web 引擎,並預計在 2017 年底開始提供主要的強化功能。如果你對 Web 引擎比較沒有概念,姑且可說「Web 引擎就是瀏覽器的核心」,在你瀏覽網站時執行所接收到的內容。量子專案將大量使用平行機制,期能將硬體效能發揮到極致。量子專案具備多個元件,其中更採用了 Servo 專案的要素。

截自 https://youtu.be/UGl9VVIOo3E?t=18

最後所建構的引擎,將同時在行動與桌面作業系統上提供更快、更順暢的使用者體驗,讓效能達到「量子」級的大躍進。這也代表我們透過「量子」專案所提升的效能,可讓你明顯感受到不一樣的 Web 體驗。網頁載入得更快,捲動得如絲綢般滑順。動畫和互動式 App 可做出即時回應,並在保持一定幀率的情況下,處理更多高資源需求的內容。對使用者來說最重要的內容,也將集中電腦資源優先處理。

我們要如何達到上述目標?

Web 瀏覽器首次出現於桌上型 PC 的時代。早期電腦僅搭載單核心 CPU,意即僅能以單一串流處理指令,等於是一次只能進行一件事。即使到今天,大多數瀏覽器也主要是以單一核心的單一執行緒執行單一網頁。

但現在我們用來瀏覽網頁的平板電腦、筆記型電腦、智慧型手機等,都搭載了更複雜的雙核心甚至四核心處理器。此外也有越來越多的裝置內建了高效能 GPU,可加速繪圖或其他運算作業。

過去 15 年來發生重大改變的另一件事,就是 Web 從「具有超連結的靜態文件」蒐集簿,演變成為豐富、互動式 App 所構成的網海。開發者想不斷創造建構;消費者期待零延遲、精采動畫、即時互動的上網經驗。為了達到此一目標,Web 平台必須讓開發者能徹底發揮裝置效能,且不須再與複雜的特定硬體或平行機制痛苦糾結。

此外,「量子」專案就是要打造新一代的引擎,期能徹底發揮現有裝置的處理效能,藉以滿足未來的 Web 需求。本專案將從 Gecko 下手,期能先取代其中「本可利用平行機制與 GPU 減輕運算負擔」的元件。關鍵策略之一,就是要吸收「Servo」的突破性技術。「Servo」是社群所主導,Mozilla 從旁輔導的獨立 Web 引擎。我們在剛開始會與 Servo 共用數個元件,再隨著專案進展而陸續測試並採用更多要素。

有一部分的 Quantum 元件是以「Rust」寫成。此系統程式語言執行速度極快,並可確保執行緒與記憶體的安全,進而簡化平行程式的開發過程。在大多數的情況下,必須確保 Rust 程式碼的安全才能進行編譯。

雖然講得有點離題,但相關的初始方案也已由「量子」專案所採用。我們同時在重新檢討多年前預設未來使用情況所做的設定與實作,希望能更符合現今的需求。針對更高階的方法,我們正從「瀏覽器引擎運作方式」的基礎角度重新思考,同時也將重新設計基礎構成要件,例如套用 CSS 樣式、執行 DOM 作業、在螢幕上繪圖等的方法。

「量子」可說是充滿雄心壯志的方案,且使用者很快就能看到效能提升的成果。我們明年就會釋出主要的強化之處並開始版本更迭。第一版新引擎將搭載於行動版 (Firefox for Android) 與桌面版 (- for Windows, Mac, and Linux)。希望某天也能為 iOS 版提供此新引擎。

我們有自信「量子」專案將大幅提升瀏覽效能。如果你想加入我們的行列,可參閱 Mozilla 的「Quantum」頁面並了解貢獻的方式。希望你也能和我們一起量子大跳躍。

原文連結:A Quantum Leap for the Web

--

--

Mozilla Taiwan

我們是Mozilla 美商謀智台灣分公司,由非營利組織 Mozilla 基金會所擁有,在台灣為自由開放的網路未來而努力。