瀏覽器辭典:JaegerMonkey
JaegerMonkey(JägerMonkey,也有人拼寫成JagerMonkey):Firefox 4將要使用的新的JavaScript引擎。
Firefox目前使用的JavaScript解析引擎TraceMonkey啟用于2008年,當(dāng)時性能非常優(yōu)秀。但隨著競爭廠商陸續(xù)改善瀏覽器性能加入這場競爭,F(xiàn)irefox如今在普通的JavaScript基準(zhǔn)測試中表現(xiàn)落后于蘋果Safari、谷歌Chrome瀏覽器和Opera瀏覽器。
為此,Mozilla基金會為Firefox開發(fā)全新的JaegerMonkey引擎。據(jù)悉,該解析引擎借用了蘋果的WebKit開源項目。Mozilla意圖將自己的TraceMonkey引擎和蘋果的JSCore引擎結(jié)合起來,融合為新的JaegerMonkey引擎。它將大幅提升Firefox瀏覽器的JavaScript代碼執(zhí)行速度,使Firefox在這場JavaScript性能之爭中再占上風(fēng)。
Mozilla目前使用了nanojit開源軟件作為Firefox的本地代碼生成器。Nanojit最初由Adobe開發(fā),原本是用于加強Flash技術(shù)ActionScript代碼的執(zhí)行能力。2006年Adobe遵循開源軟件授權(quán)許可,將nanojit發(fā)布為開源軟件。Mozilla和Adobe原本計劃利用nanojit創(chuàng)建一個名為Tamarin的開源項目,意在執(zhí)行ECMAScript 4。然而,隨著ECMAScript 4被棄用,Tamarin項目也幾乎完全止步。Mozilla隨后將nanojit軟件整合至其現(xiàn)有的SpiderMonkey解析引擎,增加了追蹤優(yōu)化技術(shù),形成了全新的TraceMonkey引擎。
Mozilla最新的JaegerMonkey引擎里仍將使用nanojit執(zhí)行某些事務(wù),但將采用蘋果旗下執(zhí)行效率更高的Nitro Assembler軟件來生成本地代碼。這種基于方法的實時編譯技術(shù)將為JaegerMonkey引擎帶來性能優(yōu)勢。此外,JaegerMonkey仍將利用追蹤優(yōu)化技術(shù)來加速程序循環(huán)的執(zhí)行,而進一步的優(yōu)化將使執(zhí)行其它路徑時的速度能有所提升。Mozilla表示,這種混合技術(shù)或許會是最優(yōu)秀的。
Mozilla開發(fā)人員大衛(wèi)·曼德林(David Mandelin)在一篇談及新引擎的博客里寫道:“我們之所以要開發(fā)JaegerMonkey引擎,是因為TraceMonkey在處理可追蹤的代碼時速度非??欤鎸Σ豢勺粉櫟拇a時,由于需要調(diào)用解釋器因此執(zhí)行效率不高。JaegerMonkey實時編譯在這方面會做得更好,而且追蹤技術(shù)在可用時仍能派上用場。”