跳转到内容

JavaScript引擎

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由Zyksnowy留言 | 贡献2016年3月15日 (二) 06:50 (警告:J ARTICLE Third Chrome beta another notch faster Google has begun releasing its third beta version of Chrome. Our tests show it's 37 percent faster at JavaScript than the earlier beta from two months earlier. By Stephen Shankland October 31, 2008)编辑。这可能和当前版本存在着巨大的差异。

JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。

历史

在2008年到2009年的第二次浏览器大战之前,JavaScript引擎仅简单地被当作能阅读执行JavaScript源代码直譯器

第一個JavaScript引擎由布蘭登·艾克网景公司开发,用于Netscape Navigator网页浏览器中。引擎的名字叫做SpiderMonkey,由C++实现。它自JavaScript 1.5升级以符合ECMA-262版本3。Rhino引擎,由网景公司的Norris Boyd开发,由Java实现。像SpiderMonkey一样,Rhino符合ECMA-262版本3。JavaScript引擎的應用例子還包括:Apple Safari 4的Nitro,Google ChromeV8Mozilla Firefox 3.5的TraceMonkey

目前为止,最通用的JavaScript宿主环境是网页浏览器。网页浏览器一般使用公共的API创建“宿主对象”以便于在JavaScript中支持DOM

性能演進

一个典型的浏览器有一个图形引擎和一个独立的JavaScript引擎。这样JavaScript引擎能够被更方便的测试、重新生成或者在另一些项目中使用。例如:Carakan被用在Presto中,Nitro被用在WebKit中,SpiderMonkey被用在Gecko中,KJS被用在KHTML中,Rhino默认不包含任何布局引擎。但还有其他组合,例如:V8与WebKit被用于Google Chrome中。JavaScript引擎能为程序员提供部分操作浏览器的功能(网络、DOM、外部事件、HTML5视频、canvas和存储)。

Sunspider是一个JavaScript实用基准测试英语Browser speed test通过一系列关于JavaScript语言的脚本测试JavaScript引擎的速度。Sunspider不测试无关于JavaScript的特性(不使用HTML、CSS和无网络情况下)。

近幾年來,在浏览器开发者之间展开了一场开发更快的JavaScript引擎的竞赛。2008年,Google Chrome因它的JavaScript性能而被受称赞,但是其它浏览器马上使用了更快的JavaScript引擎。之后,Google Chrome在性能上获得领先,其长处在于它高速的性能和JavaScript的处理速度,这些都由许多网站在主要的浏览器之间的速度测试中得到验证[1][2][3]。随着WebKit的Squirrelfish Extreme和Mozilla的TraceMonkey JavaScript虚拟机出现,Chrome的JavaScript执行速度就被超越了[4][5][6][7]。Google丹麦在Chrome 2中开发了更快速的V8引擎

2008年6月2日,WebKit开发团队发布了SquirrelFish[8]——一个能极大地提升Safari解释脚本速度的新的JavaScript引擎[9]。该引擎是Safari 4其中一个新特性,在2008年6月11日发布给程序员使用;最终此JavaScript引擎被称为Nitro。2009年6月30日,在Firefox 3.5發布的最新技術能“使某些情況下的速度提升20到40倍”[10]

JavaScript引擎

開發中

停止開發

实现

JavaScript是一种ECMAScript方言,在许多程序中得以实现,特别是在网页浏览器。这些方言通常扩展了语言,或者标准库和相关API,例如W3C定义的DOM。这意味着以一种方言实现的程序不兼容于另一种方言的实现,除非程序使用了方言中的公共子集所具有的特性和API。

在实现和方言中存在着一些差别。一种语言的方言有一些与语言不同的地方。实现能够执行该语言或方言编写的程序。

应用程序(实现) 方言和最后版本 ECMAScript版本
Google ChromeV8引擎 JavaScript ECMA-262,版本5
Mozilla FirefoxGecko排版引擎,SpiderMonkeyRhino JavaScript 1.8.5 ECMA-262,版本5
SafariNitro引擎 JavaScript ECMA-262,版本5.1
Opera 一些JavaScript 1.5特性及一些JScript扩展[12] ECMA-262,版本5.1
KHTML排版引擎,KDE项目的Konqueror JavaScript 1.5 ECMA-262,版本3
Adobe Acrobat JavaScript 1.5 ECMA-262,版本3
OpenLaszlo英语OpenLaszlo JavaScript 1.4 ECMA-262,版本3
Max/MSP英语Max (software) JavaScript 1.5 ECMA-262,版本3
ANT Galio 3英语Fresco (web browser) JavaScript 1.5附带RMAI扩展 ECMA-262,版本3

参考来源

  1. ^ Stephen Shankland. Speed test: Google Chrome beats Firefox, IE, Safari. cnet.com Business Tech. CNET. 2008-09-02 [2010-06-28] (英语). 
  2. ^ Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome. PC Games Hardware. Computec Media AG. [2010-06-28] (英语). 
  3. ^ Lifehacker Speed Tests: Safari 4, Chrome 2. Lifehacker. [2010-06-28] (英语). 
  4. ^ Stephen Shankland. Third Chrome beta another notch faster. cnet.com. CNET. 2008-10-31 [2010-06-28] (英语). 
  5. ^ Stephen Shankland. Step aside, Chrome, for Squirrelfish Extreme. cnet.com. CNET. 2008-09-19 [2010-06-29] (英语). 
  6. ^ SquirrelFish Extreme: Fastest JavaScript Engine Yet. satine.org. [2010-06-29] (英语). 
  7. ^ Stephen Shankland. Firefox counters Google's browser speed test. cnet.com Business Tech. CNET. 2008-09-03 [2010-06-29] (英语). 
  8. ^ Garen, Geoffrey. Announcing SquirrelFish. 2008-06-02 [2008-06-11] (英语). 
  9. ^ Lipskas, Vygantas. Apple Safari 4. 2008-06-11 [2008-06-11] (英语). 
  10. ^ Ryan Paul. Firefox to get massive JavaScript performance boost. arstechnica.com. Ars Technica © 2010 Condé Nast Digital. 2008-08-22 [2010-06-28] (英语). 
  11. ^ Marius Oiaga. Internet Explorer 9 Beta Next – New IE9 Builds Every 8 Weeks. softpedia.com. SoftNews NET SRL. 2010-03-20 [2010-06-28] (英语). 
  12. ^ Web specifications support in Opera Presto. Opera.com. Opera Software ASA. [2010-06-28] (英语). 

外部链接