更新时间:2022-07-29 15:30
TraceMonkey
TraceMonkey计画的目标为改善Mozilla JavaScript引擎,并提高浏览器产生页面与回应时间的速度。
Mozilla在Firefox 3.1 alpha测试版中内建TraceMonkey,虽然预设不会开启TraceMonkey是因为除错尚未完成,待将来版本稳定,启动TraceMonkey后,在Firefox浏览器中执行JavaScript的速度将会更快。
“若使用者执行如影像处理等运算,目前可得到6至7倍的效能,而且未来有机会再加倍,”Mozilla技术长Brendan Eich表示:“若你执行小型的回圈运算,所得到的效能甚至可能增加至20至40倍。”
TraceMonkey获得加州大学Irvine学区的研究科学家Andreas Gal协助,使用一种称之为“追踪树(trace trees)”的技术。Mozilla工程副总Mike Schroepfer(即将离开前去Facebook)则贴出一段示范影片,展示透过Firefox线上编修图片与使用专属图片编辑软体在使用介面经验上的回应时间比较。
“我们正在尝试拓展浏览器的可能性,”Eich表示,一旦增加JavaScript的执行效能,在Web平台上开发图形应用与游戏便能够得到相当多的助益。“毕竟不是所有人都会下载安装外挂套件。”
若要以开放原始码取代专属贴图技术,增加浏览器效能则有其必要,“若浏览器只能执行JavaScript且效能低落,我们担心最终所有的Web内容只能投靠如Silverlight的封闭平台。”Eich补充表示为达到开放的目的,Mozilla也支援HTML 5规格的canvas贴图元件与Ogg视讯标准。
若Mozilla的政策成功,无疑为当前竞争激烈的多媒体网路应用程式(Rich Internet Application)开发投下一枚震撼弹。如同Eich所见,RIA的发展有其风险,“其他RIA平台并非浏览器,无法像浏览器般逐渐扩充加值功能。”
Eich表示当年Google推出Google Maps服务却不需要安装任何外挂程式,着实令他们吓了一跳,他希望不断增加效能的浏览器,也能够抛砖引玉吸引软体商开发出同样惊人的应用程式。
Eich表示,Firefox 3.1将于今年底前完成开发。
何谓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,这是浏览器用来描绘与处理网页用的文件物件模组元件。
Firefox 3.1的其他重大特点
除了TraceMonkey外,Firefox 3.1也将支援JavaScript程式的多执行绪功能,支援新款多核心处理器,能够同时执行多道程式。这表示JavaScript能够将某些运算工作丢到背景去执行。
另一项特点则是内建播放Ogg Vorbis音乐与Ogg Theora影片的能力,尽管该编码格式还比不上MP3格式来得普遍,但Ogg采开放原始码授权条款,因此可以使用在其他开放原始码软体如Firefox。