為了讓 Firefox 能夠與桌面端程式及各種新興應用技術如 Microsoft Silverlight 與 Adobe Flash 相競爭,Mozilla 於上週五釋出 TraceMonkey,可在 Mozilla JavaScript 引擎-SpiderMonkey 中執行原生程式碼。
TraceMonkey 計畫的目標為改善 Mozilla JavaScript 引擎,並提高瀏覽器產生頁面與回應時間的速度。
Mozilla 在 Firefox 3.1 alpha 測試版中內建 TraceMonkey,雖然預設不會開啟 TraceMonkey 是因為除錯尚未完成,待將來版本穩定,啟動 TraceMonkey 後,在 Firefox 瀏覽器中執行 JavaScript 的速度將會更快。
「若使用者執行如影像處理等運算,目前可得到 6 至 7 倍的效能,而且未來有機會再加倍,」Mozilla 技術長 Brendan Eich 表示:「若你執行小型的迴圈運算,所得到的效能甚至可能增加至 20 至 40 倍。」
TraceMonkey 獲得加州大學 Irvine 學區的研究科學家 Andreas Gal 協助,使用一種稱之為「追蹤樹 (trace trees)」的技術。 Mozilla 工程副總 Mike Schroepfer(即將離開前去 Facebook)則貼出一段示範影片,展示透過 Firefox 線上編修圖片與使用專屬圖片編輯軟體在使用介面經驗上的回應時間比較。
「我們正在嘗試拓展瀏覽器的可能性,」Eich 表示,一旦增加 JavaScript 的執行效能,在 Web 平台上開發圖形應用與遊戲便能夠得到相當多的助益。「畢竟不是所有人都會下載安裝外掛套件。」
若要以開放原始碼取代專屬貼圖技術,增加瀏覽器效能則有其必要,「若瀏覽器只能執行 JavaScript 且效能低落,我們擔心最終所有的 Web 內容只能投靠如 Silverlight 的封閉平台。」Eich 補充表示為達到開放的目的,Mozilla 也支援 HTML 5 規格的 canvas 貼圖元件與 Ogg 視訊標準。
若 Mozilla 的政策成功,無疑為當前競爭激烈的多媒體網路應用程式 (Rich Internet Application) 開發投下一枚震撼彈。如同 Eich 所見,RIA 的發展有其風險,「其他 RIA 平台並非瀏覽器,無法像瀏覽器般逐漸擴充加值功能。」
Eich 表示當年 Google 推出 Google Maps 服務卻不需要安裝任何外掛程式,著實令他們嚇了一跳,他希望不斷增加效能的瀏覽器,也能夠拋磚引玉吸引軟體商開發出同樣驚人的應用程式。
Eich 表示,Firefox 3.1 將於今年底前完成開發。
本文目錄
何謂 TraceMonkey
TraceMonkey 的名稱來自於 Mozilla 的 JavaScript 解析引擎-SpiderMonkey 與加州大學教授 Andreas Gal等人所提供的技術-tracing 。 Gal 目前為 TraceMonkey 的專案領導人。
簡單來說,TraceMonkey 是一套「即時編譯器」,可將程式語言即時編譯成機器語言丟給電腦執行。多數的桌面端程式均是屬於事先編譯好的二元機器碼 (binary code),但 JavaScript 是一種程序語言,通常是逐條執行,因此效能低落。
而即時編譯器 (just-in-time compiler) 則是當使用者瀏覽新網頁時,將網站傳送來的 JavaScript 碼編譯成二元機器碼,但 TraceMonkey 並非編譯所有送來的 JavaScript 碼,而在追蹤與記錄 JavaScript 程式執行後,TraceMonkey 將會找出容易耗費大量執行時間的程式迴圈,然後再將這些迴圈編譯成可執行碼。
傳統的編譯器 (compiler) 設計用來編譯整支程式,將所有的程式動作全部編譯成可執行碼,因此編譯工作相當耗時耗力。而 Tracing 技術將會根據實際的程式執行動作,只編譯實際耗用電腦運算資源的程式碼。
透過濃縮 (Concentration) 特點,TraceMonkey 不需要大量記憶體或是載入速度慢的外掛程式,因此也適合行動裝置使用,這也是未來 Moziila 的重要開發項目之一。
當然,改善 Web 應用程式還有許多空間,Mozilla 下一步要改善 DOM,這是瀏覽器用來描繪與處理網頁用的文件物件模組元件。
Firefox 3.1 的其他重大特點
除了 TraceMonkey 外,Firefox 3.1 也將支援 JavaScript 程式的多執行緒功能,支援新款多核心處理器,能夠同時執行多道程式。這表示 JavaScript 能夠將某些運算工作丟到背景去執行。
另一項特點則是內建播放 Ogg Vorbis 音樂與 Ogg Theora 影片的能力,儘管該編碼格式還比不上 MP3 格式來得普遍,但 Ogg 採開放原始碼授權條款,因此可以使用在其他開放原始碼軟體如 Firefox 。

