更新时间:2023-01-19 23:24
JaegerMonkey是Firefox 4将要使用的一款新的JavaScript引擎。
Firefox目前使用的JavaScript解析引擎TraceMonkey启用于2008年,当时性能非常优秀。但随着竞争厂商陆续改善浏览器性能加入这场竞争,Firefox逐渐落后。为此,Mozilla基金会为Firefox开发全新的JaegerMonkey引擎。
JaegerMonkey(JägerMonkey,也有人拼写成JagerMonkey):Firefox 4将要使用的新的JavaScript引擎。
Firefox目前使用的JavaScript解析引擎TraceMonkey启用于2008年,当时性能非常优秀。但随着竞争厂商陆续改善浏览器性能加入这场竞争,Firefox如今在普通的JavaScript基准测试中表现落后于苹果Safari、谷歌Chrome浏览器和Opera浏览器。
为此,Mozilla基金会为Firefox开发全新的JaegerMonkey引擎。据悉,该解析引擎借用了苹果的WebKit开源项目。Mozilla意图将自己的TraceMonkey引擎和苹果的JSCore引擎结合起来,融合为新的JaegerMonkey引擎。它将大幅提升Firefox浏览器的JavaScript代码执行速度,使Firefox在这场JavaScript性能之争中再占上风。
Mozilla目前使用了nanojit开源软件作为Firefox的本地代码生成器。Nanojit最初由Adobe开发,原本是用于加强Flash技术ActionScript代码的执行能力。2006年Adobe遵循开源软件授权许可,将nanojit发布为开源软件。Mozilla和Adobe原本计划利用nanojit创建一个名为Tamarin的开源项目,意在执行ECMAScript 4。然而,随着ECMAScript 4被弃用,Tamarin项目也几乎完全止步。Mozilla随后将nanojit软件整合至其现有的SpiderMonkey解析引擎,增加了追踪优化技术,形成了全新的TraceMonkey引擎。
Mozilla最新的JaegerMonkey引擎里仍将使用nanojit执行某些事务,但将采用苹果旗下执行效率更高的Nitro Assembler软件来生成本地代码。这种基于方法的实时编译技术将为JaegerMonkey引擎带来性能优势。此外,JaegerMonkey仍将利用追踪优化技术来加速程序循环的执行,而进一步的优化将使执行其它路径时的速度能有所提升。Mozilla表示,这种混合技术或许会是最优秀的。
Mozilla开发人员大卫·曼德林(David Mandelin)在一篇谈及新引擎的博客里写道:“我们之所以要开发JaegerMonkey引擎,是因为TraceMonkey在处理可追踪的代码时速度非常快,但面对不可追踪的代码时,由于需要调用解释器因此执行效率不高。JaegerMonkey实时编译在这方面会做得更好,而且追踪技术在可用时仍能派上用场。”