TraceMonkey

何謂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,這是瀏覽器用來描繪與處理網頁用的文件物件模組元件。