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