Mozilla公司22日表示,Firefox 3.1加入的TraceMonkey新功能,將大幅加快如Gmail等用JavaScript編寫的網路應用程式執行速度。
近幾年來,JavaScript被普遍用在許多具備桌面軟體功能的網路應用程式上。然而,JavaScript一直受陷於執行速度問題,網路應用軟體的反應速度,就是不如直接安裝在PC本身的軟體。因此,製作網路應用軟體程式設計師,經常改用其他選擇,如Adobe Systems的Flash和Flex。
現在Mozilla希望扭轉不利於JavaScript的局勢。Mozilla的代理工程副總Mike Shaver說:「TraceMonkey是一個賦予JavaScript原生程式碼速度的計畫。」他指出,根據SunSpider的測試結果,JavaScript在Firefox 3.1的執行速度比在Firefox 3.0快兩倍。
TraceMonkey 可大幅改善許多JavaScrpit的速度。
Shaver表示。上週四(21日),Mozilla程式設計師將TraceMonkey加入最新一個開發者版Firefox,這項功能確定會納入下一個測試版,也就是Firefox 3.1第一個beta。Firefox原訂今年底完工,但若有必要,Mozilla願意稍作延後。
JavaScript執行速度能讓網路瀏覽更快速、更順暢,對日漸升高的瀏覽器大戰,自然有關鍵性的影響。Shaver說:「我們和任何人一樣警覺到,這個市場再度陷入競爭。」
根據JavaScript先鋒Brendan Eich的說法,SunSpider JavaScript測試顯示速度提升了83%,但這項速度測試是人為的基準,無法確實反映出JavaScript應用程式,如雅虎Zimbra電郵軟體的執行狀況。另一段TraceMonkey速度的示範影片,顯示照片編輯的對比和亮度調整,只需要100毫秒(過去要700毫秒以上)。
TraceMonkey的名稱,是結合Mozilla現用的JavaScript翻譯碼引擎SpiderMonkey,與加州大學爾灣分校開發的追蹤(trace)技術。加大計劃的領導人是Andreas Gal。TraceMonkey是所謂的及時編譯器,這種技術能將人類編寫的程式,轉換成電腦能瞭解的指令。
一般人電腦裡的軟體都已經先被翻譯成所謂的二進位格式資料檔,但JavaScript通常是在執行的當時才一行行地翻譯,速度自然較慢。Shaver說:「我們已經接近翻譯器能力的極限。」及時編譯器是在程式碼的接收作業中(如某人進入一個新網頁,瀏覽器碰到JavaScript),就製作二進位格式資料檔。
但TraceMonkey只專門翻譯軟體中高優先性的部分。利用追蹤和紀錄JavaScript程式的執行,TraceMonkey發現程式經常耗費很多時間執行的反覆活動循環,這些實際軟體行為的循環,再被翻譯成電腦能瞭解的原生指令。
相反的,有些編譯器會翻譯整個程式,耗時費工的畫出電腦可能採取的所有路徑,再找出最重要的。以程式實際執行狀況為依據的追蹤技術,只專心翻譯實際需要電腦執行的部分。Shaver說:「它讓我們的最佳化能量集中在程式最重要的部分。」這也代表TraceMonkey不需要很多的記憶體空間,或慢慢地安裝外掛程式。對Mozilla瀏覽器開發的另一個主要目標—行動裝置,也有好處。
但網路應用程式仍有很大的改善空間,Mozilla下一個優先工作是改進DOM—負責描繪和操縱整個網頁的文件物件模型。雖然TraceMonkey目前是內建在新的 Firefox 3.1開發者版,其預設狀態是關閉的。Shaver說:「因為我們希望得到更廣泛的意見。」
Firefox 3.1還將包含其他重要的改變。其中之一是支援JavaScript程式線程。現在的多核心處理器可同時處理多個線程。Shaver說,軟體支援代表JavaScript程式在多核心環境中執行某些工作,會有更好的表現。
另一項內建功能,是播放Ogg Vorbis格式音樂,和Ogg Theora格式影片。Shaver表示,這兩種格式雖然不如MP3普遍,卻沒有專有軟體的限制,如專利權,因此可以加入如Firefox這類開放原始碼計畫。他說:「我們很高興能為網路帶來無障礙、真正開放原始碼的影音。」這項支援也適用所有Firefox支援的作業系統。
Mozilla將開始更積極地鼓勵Firefox使用者換用最新的版本。Shaver說,未來兩週內,Firefox 2使用者會開始收到升級第三版的訊息。
目前,Firefox 2若進入Mozilla伺服器檢查更新,伺服器不會直接建議升級第三版,因此使用者必須手動更新。Shaver說:「我們預計未來兩週內改變作法。大多數使用者還是在用Firefox 2。」
引用來源
|