竞速(一):JavaScript引擎家谱

伯乐在线注:英文原文:John Dalziel,感谢@AvisBlume 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。以下是译文。

如今我们都会理所应当地认为浏览器中的JavaScript运行速度很快,在creativejs.com上我们就可以看到很多振奋人心的例子,但是在以前可并非如此。

网页浏览器由很多不同的组件构成,它们分工协作为我们带来快速高效的浏览体验。有些组件负责解释代码,有些负责渲染显示,有些负责管理插件,还有的负责其它功能。在本系列的文章中我们将讨论JavaScript引擎这个组件,它负责将JavaScript代码编译成计算机可识别运行的本地指令。

最早的JavaScript引擎是SpiderMonkey,1995年的时候出现在Netscape Navigator 2.0浏览器中。它的诞生速度堪比神话,Brendan Eich只花了10天时间就设计出了JavaScript语言及其编译器。JavaScript随后迅速走红,次年8月就被微软作为JScript放到了IE3.0中。1996年年底正式开始标准化进程,于1997年的6月出现在ECMA-262中。

之后每个浏览器都将支持JavaScript作为一个标准特性,每个浏览器厂商都会开发自己的引擎来支持该特性。随着时间流逝,这些引擎不断进化、消亡、重生着。对于心脏不强健的人来说,要弄清这些引擎所有的版本、分支和研发代号简直比登天还难。

举例来说,KDE的Konqueror浏览器使用开源的KJS JavaScript引擎。Apple的开发人员将其整合进了JavaScriptCore,供WebKit使用。研发代号经历了Squirrelfish、Squirrelfish Extreme直至最终上市的Nitro。

但也有换酒不换瓶的例子。有些引擎的开发代号一直没变,但其它都在变。譬如Mozilla的Firefox浏览器的JavaScript引擎,一直都叫做SpiderMonkey。但现在的它与1995年出现在Netscape浏览器中的老祖宗相比已经是天差地别了。

21世纪初的时候,JavaScript被标准化。它创造力十足但代码执行速度依旧很慢。2008年的时候一堆新引擎展开了竞速。那年年初最快的引擎要属Opera的Futhark,但到夏天的时候,Mozilla就开发出了Tracemonkey,而Google也推出了带有名为 V8.的JavaScript引擎的Chrome浏览器。

抛开这些令人头昏眼花的研发代号不说,这些引擎还是有共同点的:它们都是用来分析和执行JavaScript的。那么它们的不同点又在哪呢?它们的速度不同。

2008年之后为了提升JavaScript引擎的速度各种设计创意层出不穷,只为了打造速度最快的浏览器。在第2部分中,我们将在细节上讨论这些创意,并且向大家介绍下JavaScript。

 

英文原文:John Dalziel,编译:@AvisBlume

译文链接:http://blog.jobbole.com/41913/

【非特殊说明,转载必须在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

收藏 评论

关于作者:伯乐在线读者

① 本账号用于发布那些在伯乐在线无账号的读者的投稿,包括译文和原创文章。② 欢迎加入伯乐在线专栏作者:http://blog.jobbole.com/99322/ 个人主页 · 我的文章 · 32

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部