常見的瀏覽器內(nèi)核有哪些?
瀏覽器/RunTime | 內(nèi)核(渲染引擎) | JavaScript 引擎 |
---|---|---|
Chrome | Blink/Webkit | V8 |
FireFox | Gecko | SpiderMonkey |
Safari | Webkit | JavaScriptCore |
Edge | EdgeHTML | Chakra(for JavaScript) |
IE | Trident | Chakra(for JScript) |
PhantomJS | Webkit | JavaScriptCore |
Node.js | - | V8 |
內(nèi)核分類
Trident
說起Trident匿值,大部分人都會(huì)覺得比較陌生嫂粟,但提起IE瀏覽器基本上是家喻戶曉钙蒙。由于該內(nèi)核被包含在全世界最高的使用率的操作系統(tǒng)中懂衩,即為Windows操作系統(tǒng),所以我們又經(jīng)常把它稱之為IE內(nèi)核实辑。采用用Trident內(nèi)核的瀏覽器有:IE、傲游藻丢、世界之窗瀏覽器剪撬、Avant、騰訊TT悠反、Sleipnir残黑、GOSURF馍佑、GreenBrowser和KKman等。
Trident(又叫MSHTML)萍摊,是微軟開發(fā)的一種排版引擎挤茄。1997年IE4誕生時(shí)一同出現(xiàn),之后被不斷地更新和完善冰木。它實(shí)際上是一款開放的內(nèi)核穷劈,由于其引擎被設(shè)計(jì)成一個(gè)軟件模塊,所以其他的軟件開發(fā)人員就能夠在他們開發(fā)的應(yīng)用程序中加入網(wǎng)頁的瀏覽功能∮环校現(xiàn)在的Trident內(nèi)核接口已經(jīng)很成熟了歇终,所以有許多采用IE內(nèi)核的產(chǎn)品。但是IE內(nèi)核無法在windows操作系統(tǒng)之外的其他操作系統(tǒng)上使用逼龟,所以不能跨平臺使用评凝。 [1]
該內(nèi)核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎(chǔ)之上修改而來的腺律,并沿用到IE11奕短,也被普遍稱作”IE內(nèi)核”。Trident實(shí)際上是一款開放的內(nèi)核匀钧,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟翎碑,因此才有許多采用IE內(nèi)核而非IE的瀏覽器(殼瀏覽器)涌現(xiàn)。
由于IE本身的“壟斷性”(雖然名義上IE并非壟斷之斯,但實(shí)際上日杈,特別是從Windows 95年代一直到XP初期,就市場占有率來說IE的確借助Windows的東風(fēng)處于“壟斷”的地位)而使得Trident內(nèi)核的長期一家獨(dú)大佑刷,微軟很長時(shí)間都并沒有更新Trident內(nèi)核莉擒,這導(dǎo)致了兩個(gè)后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年),二是Trident內(nèi)核的大量Bug等安全性問題沒有得到及時(shí)解決瘫絮,然后加上一些致力于開源的開發(fā)者和一些學(xué)者們公開自己認(rèn)為IE瀏覽器不安全的觀點(diǎn)涨冀,也有很多用戶轉(zhuǎn)向了其他瀏覽器,Firefox和Opera就是這個(gè)時(shí)候興起的麦萤。非Trident內(nèi)核瀏覽器的市場占有率大幅提高也致使許多網(wǎng)頁開發(fā)人員開始注意網(wǎng)頁標(biāo)準(zhǔn)和非IE瀏覽器的瀏覽效果問題鹿鳖。
補(bǔ)充:IE從版本11開始,初步支持WebGL技術(shù)频鉴。IE8的JavaScript引擎是Jscript栓辜,IE9開始用Chakra,這兩個(gè)版本區(qū)別很大垛孔,Chakra無論是速度和標(biāo)準(zhǔn)化方面都很出色藕甩。
Trident內(nèi)核的常見瀏覽器有: IE6、IE7、IE8(Trident 4.0)狭莱、IE9(Trident 5.0)僵娃、IE10(Trident 6.0);360安全瀏覽器(1.0-5.0為Trident腋妙,6.0為Trident+Webkit默怨,7.0為Trident+Blink)獵豹極輕瀏覽器,360極速瀏覽器(7.5之前為Trident+Webkit骤素,7.5為Trident+Blink)獵豹安全瀏覽器(1.0-4.2版本為Trident+Webkit匙睹,4.3及以后版本為Trident+Blink)獵豹極輕瀏覽器,傲游瀏覽器(傲游1.x济竹、2.x為IE內(nèi)核痕檬,3.x為IE與Webkit雙核)、百度瀏覽器(早期版本)送浊、世界之窗瀏覽器(最初為IE內(nèi)核梦谜,2013年采用Chrome+IE內(nèi)核)、2345瀏覽器袭景、騰訊TT唁桩、淘寶瀏覽器、采編讀瀏覽器耸棒、搜狗高速瀏覽器(1.x為Trident荒澡,2.0及以后版本為Trident+Webkit)、阿云瀏覽器(早期版本)榆纽、瑞星安全瀏覽器仰猖、Slim Browser捏肢、 GreenBrowser奈籽、愛帆瀏覽器(12 之前版本)、115瀏覽器鸵赫、155瀏覽器衣屏、閃游瀏覽器、N氧化碳瀏覽器辩棒、糖果瀏覽器狼忱、彩虹瀏覽器、瑞影瀏覽器一睁、勇者無疆瀏覽器钻弄、114瀏覽器、螞蟻瀏覽器者吁、飛騰瀏覽器窘俺、速達(dá)瀏覽器、佐羅瀏覽器复凳、海豚瀏覽器(iPhone/iPad/Android)瘤泪、UC瀏覽器(Webkit內(nèi)核+Trident內(nèi)核)等灶泵。
其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個(gè)內(nèi)核是Trident对途,然后再增加一個(gè)其他內(nèi)核赦邻。國內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”实檀,用戶可以來回切換惶洲。
Gecko
Gecko(Firefox內(nèi)核):Netscape6開始采用的內(nèi)核,后來的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核膳犹,Gecko的特點(diǎn)是代碼完全公開湃鹊,因此,其可開發(fā)程度很高镣奋,全世界的程序員都可以為其編寫代碼币呵,增加功能。因?yàn)檫@是個(gè)開源內(nèi)核侨颈,因此受到許多人的青睞余赢,Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場占有率能夠迅速提高的重要原因哈垢。
事實(shí)上妻柒,Gecko引擎的由來跟IE不無關(guān)系,前面說過IE沒有使用W3C的標(biāo)準(zhǔn)耘分,這導(dǎo)致了微軟內(nèi)部一些開發(fā)人員的不滿举塔;他們與當(dāng)時(shí)已經(jīng)停止更新了的 Netscape的一些員工一起創(chuàng)辦了Mozilla,以當(dāng)時(shí)的Mosaic內(nèi)核為基礎(chǔ)重新編寫內(nèi)核求泰,于是開發(fā)出了Gecko央渣。不過事實(shí)上,Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多渴频,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核芽丹。此外Gecko也是一個(gè)跨平臺內(nèi)核,可以在Windows卜朗、 BSD拔第、Linux和Mac OS X中使用。
補(bǔ)充:JavaScript引擎是:SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0)场钉。
Gecko內(nèi)核常見的瀏覽器:Mozilla Firefox蚊俺、Mozilla SeaMonkey、waterfox(Firefox的64位開源版)逛万、Iceweasel泳猬、Epiphany(早期版本)、Flock(早期版本)、K-Meleon暂殖。
Presto
Presto(Opera前內(nèi)核) (已廢棄): Opera12.17及更早版本曾經(jīng)采用的內(nèi)核价匠,現(xiàn)已停止開發(fā)并廢棄,該內(nèi)核在2003年的Opera7中首次被使用呛每,該款引擎的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致踩窖,然而代價(jià)是犧牲了網(wǎng)頁的兼容性。
實(shí)際上這是一個(gè)動(dòng)態(tài)內(nèi)核晨横,與前面幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上洋腮,Presto有著天生的優(yōu)勢,頁面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析手形。此外該內(nèi)核在執(zhí)行Javascrīpt的時(shí)候有著最快的速度啥供,根據(jù)在同等條件下的測試,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢库糠,不過兩者相差沒有多大)伙狐,本文的其中一個(gè)修改者認(rèn)為上述測試信息過于老舊且不完整,因?yàn)樗鲞^的小測試顯示Presto部分快部分慢瞬欧,各內(nèi)核總體相當(dāng)贷屎。那次測試的時(shí)候因?yàn)锳pple機(jī)的硬件條件和普通PC機(jī)不同所以沒有測試WebCore內(nèi)核。只可惜Presto是商業(yè)引擎艘虎,使用Presto的除開Opera以外唉侄,只剩下NDSBrowser、Wii Internet Channle野建、Nokia 770網(wǎng)絡(luò)瀏覽器等属划,這很大程度上限制了Presto的發(fā)展。
Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核候生。
Webkit
Webkit(Safari內(nèi)核同眯,Chrome內(nèi)核原型,開源):它是蘋果公司自己的內(nèi)核陶舞,也是蘋果的Safari瀏覽器使用的內(nèi)核嗽测。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎绪励,均是從KDE的KHTML及KJS引擎衍生而來肿孵,它們都是自由軟件,在GPL條約下授權(quán)疏魏,同時(shí)支持BSD系統(tǒng)的開發(fā)停做。所以Webkit也是自由軟件,同時(shí)開放源代碼大莫。在安全方面不受IE蛉腌、Firefox的制約,所以Safari瀏覽器在國內(nèi)還是很安全的。
限于Mac OS X的使用不廣泛和Safari瀏覽器曾經(jīng)只是Mac OS X的專屬瀏覽器烙丛,這個(gè)內(nèi)核本身應(yīng)該說市場范圍并不大舅巷;但似乎根據(jù)最新的瀏覽器調(diào)查表明,該瀏覽器的市場甚至已經(jīng)超過了Opera的Presto了——當(dāng)然這一方面得益于蘋果轉(zhuǎn)到x86架構(gòu)之后的人氣暴漲河咽,另外也是因?yàn)镾afari 3終于推出了Windows版的緣故吧钠右。Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器忘蟹。
Google Chrome飒房、360極速瀏覽器以及搜狗高速瀏覽器高速模式也使用Webkit作為內(nèi)核(在腳本理解方面,Chrome使用自己研發(fā)的V8引擎)媚值。WebKit 內(nèi)核在手機(jī)上的應(yīng)用也十分廣泛狠毯,例如 Google 的手機(jī) Gphone、 Apple 的iPhone褥芒, Nokia’s Series 60 browser 等所使用的 Browser 內(nèi)核引擎嚼松,都是基于 WebKit。
WebKit內(nèi)核常見的瀏覽器:傲游瀏覽器3锰扶、Apple Safari (Win/Mac/iPhone/iPad)惜颇、Symbian手機(jī)瀏覽器、Android 默認(rèn)瀏覽器少辣,
Blink
產(chǎn)品簡介
Blink是一個(gè)由Google和Opera Software開發(fā)的瀏覽器排版引擎凌摄,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分,并且在2013年4月的時(shí)候公布了這一消息漓帅。這一渲染引擎是開源引擎WebKit中WebCore組件的一個(gè)分支锨亏,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用忙干。
相關(guān)新聞
2013年4月3日器予,谷歌在Chromium Blog上發(fā)表博客,稱將與蘋果的開源瀏覽器核心Webkit分道揚(yáng)鑣捐迫,在Chromium項(xiàng)目中研發(fā)Blink渲染引擎(即瀏覽器核心)乾翔,內(nèi)置于Chrome瀏覽器之中。
蘋果在Safari中采用Webkit核心施戴,并于2005年將Webkit公開為開源軟件反浓。谷歌當(dāng)時(shí)采用蘋果的Webkit核心打造了Chrome瀏覽器。Opera也宣布稱將會(huì)轉(zhuǎn)向Webkit核心赞哗,但是谷歌宣布此舉后雷则,Opera表示將會(huì)跟隨谷歌采用其Blink瀏覽器核心,同時(shí)參與了Blink的開發(fā)肪笋。
谷歌轉(zhuǎn)向研發(fā)Blink瀏覽器內(nèi)核意義重大月劈,谷歌此舉欲降低Webkit即蘋果在瀏覽器市場的影響力度迂。截止2012年底,Webkit瀏覽器內(nèi)核占總瀏覽器市場份額約40%猜揪。谷歌解釋稱惭墓,Chromium多處理架構(gòu)系統(tǒng)與其他Webkit瀏覽器很不相同。谷歌工程師Adam Barth在博客中表示而姐,隨著瀏覽器的發(fā)展诅妹,蘋果的Webkit已經(jīng)不能滿足用戶需求,同時(shí)也有礙瀏覽器技術(shù)的創(chuàng)新步伐毅人。但是他也表示吭狡,谷歌自主研發(fā)Blink內(nèi)核絕非易事,但是新內(nèi)核將會(huì)提升整個(gè)開源網(wǎng)絡(luò)生態(tài)系統(tǒng)的機(jī)能丈莺。谷歌做出此舉之際划煮,Mozilla與三星也達(dá)成合作協(xié)議開發(fā)“下一代”瀏覽器渲染引擎Servo。
排版引擎
WebCore
WebCore是蘋果公司開發(fā)的排版引擎缔俄,它是在另外一個(gè)排版引擎“KHTML”的基礎(chǔ)上而來的弛秋。使用WebCore的主要有Safari,此外還有OmniWeb俐载、Shiira蟹略、Swift等。Safari現(xiàn)支持Windows遏佣,但效果不如macOS上的挖炬。
KHTML
KHTML,是HTML網(wǎng)頁排版引擎之一状婶,由KDE所開發(fā)意敛。
KDE系統(tǒng)自KDE2版起,在檔案及網(wǎng)頁瀏覽器使用了KHTML引擎膛虫。該引擎以C++編程語言所寫草姻,并以LGPL授權(quán),支援大多數(shù)網(wǎng)頁瀏覽標(biāo)準(zhǔn)稍刀。由于微軟的Internet Explorer的占有率相當(dāng)高撩独,不少以FrontPage制作的網(wǎng)頁均包含只有IE才能讀取的非標(biāo)準(zhǔn)語法,為了使KHTML引擎可呈現(xiàn)的網(wǎng)頁達(dá)到最多账月,部分IE專屬的語法也一并支援综膀。
KHTML擁有速度快捷的優(yōu)點(diǎn),但對錯(cuò)誤語法的容忍度則比Mozilla產(chǎn)品所使用的Gecko引擎小捶障。
蘋果電腦于2002年采納了KHTML僧须,作為開發(fā)Safari瀏覽器之用,并發(fā)布所修改的最新及過去版本源代碼项炼。后來發(fā)表了開放源代碼的WebCore及WebKit引擎担平,它們均是KHTML的衍生產(chǎn)品,在開發(fā)網(wǎng)站列出引擎改變內(nèi)容锭部,并會(huì)傳回至KDE計(jì)劃暂论。由于兩個(gè)衍生產(chǎn)品各走不同路線,使兩者源代碼偏離拌禾,在與KDE交換更新會(huì)出現(xiàn)困難取胎。其中一個(gè)原因,是蘋果在對外公開源代碼之前湃窍,以一年時(shí)間編修他們的KHTML闻蛀。另外,蘋果傳送更新至KDE計(jì)劃的方式您市,多是一口氣把大量改動(dòng)一起傳送觉痛,KDE在整理資料也出現(xiàn)一定的困難,及后蘋果表示會(huì)以CVS格式來傳送茵休。再者薪棒,蘋果所作出的改動(dòng)包括macOS系統(tǒng)獨(dú)有的事物,如Objective-C榕莺、KWQ等俐芯,在Linux及KHTML是沒有的。但KDE方面仍透過這些改動(dòng)钉鸯,為KHTML加入新功能及加快其排版速度吧史。
基于KHTML內(nèi)核的內(nèi)核:WebKit、WebCore唠雕。
瀏覽器內(nèi)核技術(shù)
瀏覽器內(nèi)核主要包括以下三個(gè)技術(shù)分支:排版渲染引擎扣蜻、 JavaScript引擎,以及其他及塘。
微軟對排版渲染引擎相關(guān)專利的申請最多莽使,達(dá)到瀏覽器內(nèi)核相關(guān)專利申請總量的93.3%。這與排版渲染引擎的功能密不可分笙僚。其主要負(fù)責(zé)取得網(wǎng)頁的內(nèi)容(HTML芳肌、XML、圖像等)肋层、整理信息亿笤,以及計(jì)算網(wǎng)頁的顯示方式,然后輸出至顯示器栋猖。所有的網(wǎng)頁瀏覽器净薛、電子郵件客戶端以及其他需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要排版渲染引擎蒲拉,特別是排版渲染引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息肃拜。由于在網(wǎng)頁顯示中所起的重要作用痴腌,微軟一直側(cè)重于涉及排版渲染引擎的專利申請。在2006年和2009年燃领,配新版本的研發(fā)帶來了排版渲染引擎專利申請量的頂峰這充分顯示了微軟在新版本的改進(jìn)中對瀏覽器排版渲染引擎技術(shù)的重視士聪。
JavaScript引擎是用來渲染JavaScript的,JavaScript的渲染速度越快猛蔽,動(dòng)態(tài)網(wǎng)頁的展示也越快剥悟。眾所周知,微軟的IE瀏覽器實(shí)現(xiàn)完全支持客戶端JavaScript語言標(biāo)準(zhǔn)的時(shí)間晚于其他瀏覽器曼库。因此区岗,在這一技術(shù)分支下,相較其他瀏覽器企業(yè)而言毁枯,微軟公司并不具有優(yōu)勢慈缔。在2001~2004年,在瀏覽器內(nèi)核技術(shù)分支下后众,微軟的中國專利申請量并不多胀糜,方面是由于內(nèi)核為開放內(nèi)核,另一方面則是由于IE本身一直與 Windows捆綁銷售蒂誉,使得Trident內(nèi)核長期一家獨(dú)大教藻,微軟很長時(shí)間都沒有更新 Trident內(nèi)核,從而導(dǎo)致Trident內(nèi)核幾乎與W3C標(biāo)準(zhǔn)脫節(jié)右锨。
2005年至今括堤,由于IE瀏覽器存在缺陷,從而使得很多用戶轉(zhuǎn)向其他瀏覽器绍移。微軟公司顯然注意到了這一點(diǎn)悄窃,逐步重視瀏覽器內(nèi)核的改進(jìn)升級,并將由此帶來的相關(guān)專利在中國進(jìn)行了布局蹂窖。最明顯的是轧抗,2006年和2009年的專利申請量大幅上升,其中關(guān)于瀏覽器內(nèi)核中排版渲染引擎的專利申請均達(dá)到了17件瞬测;在2008年還有一件關(guān)于 JavaScript引擎的專利申請横媚,以上均表明I內(nèi)核在2005年之后有了明顯改進(jìn)。 [2]
歷史發(fā)展
在2008年到2009年的第二次瀏覽器大戰(zhàn)之前月趟,JavaScript引擎(JavaScript engine)僅簡單地被當(dāng)作能閱讀執(zhí)行JavaScript源代碼的解釋器上荡。
第一款JavaScript引擎由布蘭登·艾克在網(wǎng)景公司開發(fā)崎页,用于Netscape Navigator網(wǎng)頁瀏覽器中呆躲。引擎的名字叫做SpiderMonkey四瘫,由C實(shí)現(xiàn)。它自JavaScript 1.5升級以符合ECMA-262 版本3因妇。Rhino引擎问潭,由網(wǎng)景公司的Norris Boyd開發(fā)猿诸,由Java實(shí)現(xiàn)。像SpiderMonkey一樣睦授,Rhino符合ECMA-262 版本3两芳。JavaScript引擎的應(yīng)用例子還包括: Apple Safari4的Nitro摔寨,Chrome瀏覽器的V8和 Mozilla Firefox 3.5的TraceMonkey去枷。
目前為止,最通用的JavaScript宿主環(huán)境是網(wǎng)頁瀏覽器是复。網(wǎng)頁瀏覽器一般使用公共的API創(chuàng)建“宿主對象”以便于在JavaScript中支持DOM删顶。
網(wǎng)頁服務(wù)器是另一種通過的應(yīng)用程序引擎。一個(gè)JavaScript服務(wù)器能夠處理HTTP請求并回應(yīng)淑廊,這樣JavaScript程序能動(dòng)態(tài)生成頁面逗余。微軟用于IIS中ASP技術(shù)允許服務(wù)器端代碼以VB Script或JScript(微軟的JavaScript實(shí)現(xiàn))寫成。Jaxer是以JavaScript編寫成的網(wǎng)頁服務(wù)器季惩,這有利于在服務(wù)器端和客戶端使用同樣的代碼录粱。
引擎應(yīng)用
主要的網(wǎng)頁瀏覽器JavaScript引擎:
Mozilla
SpiderMonkey,第一款JavaScript引擎画拾,由Brendan Eich在Netscape Communications時(shí)編寫啥繁,用于Mozilla Firefox 1.0~3.0版本。
Rhino青抛,由Mozilla基金會(huì)管理旗闽,開放源代碼,完全以Java編寫蜜另。
TraceMonkey适室,基于實(shí)時(shí)編譯的引擎,其中部份代碼取自Tamarin引擎举瑰,用于Mozilla Firefox 3.5~3.6版本捣辆。
JaegerMonkey,德文J?ger原意為獵人此迅,結(jié)合追蹤和組合碼技術(shù)大幅提高性能汽畴,部分技術(shù)借鑿了V8、JavaScriptCore邮屁、WebKit整袁,用于Mozilla Firefox 4.0以上版本。
V8佑吝,開放源代碼坐昙,由Google丹麥開發(fā),是Chrome瀏覽器的一部分芋忿。
微軟
Chakra (JScript引擎)炸客,中文譯名為查克拉疾棵,用于Internet Explorer 9的32位版本。
Opera
Linear A痹仙,用于Opera 4.0~6.1版本是尔。
Linear B,用于Opera 7.0~9.2版本开仰。
Futhark拟枚,用于Opera 9.5~10.2版本。
Carakan众弓,由Opera軟件公司編寫恩溅,自O(shè)pera10.50版本開始使用。
其它
KJS谓娃,KDE的ECMAScript/JavaScript引擎脚乡,最初由Harri Porten開發(fā),用于KDE項(xiàng)目的Konqueror網(wǎng)頁瀏覽器中滨达。
Narcissus奶稠,開放源代碼,由Brendan Eich編寫(他也參與編寫了第一個(gè)SpiderMonkey)捡遍。
Tamarin锌订,由Adobe Labs編寫,F(xiàn)lash Player 9所使用的引擎稽莉。
Nitro(原名SquirrelFish)瀑志,為Safari 4編寫。
性能演化
2008年5月11日污秆,Mozilla采用PGO(Profile-guided Optimizations)特性指引優(yōu)化劈猪,使Firefox 3.0的性能大幅提升。2009年6月30日發(fā)布的Firefox 3.5使用了Tracing和Nanojit技術(shù)良拼,能“在某些情況下的速度提升20到40倍”战得,其中Nanojit的代碼由Adobe貢獻(xiàn)。
2008年6月2日庸推,WebKit開發(fā)團(tuán)隊(duì)聲明了SquirrelFish——一個(gè)新的JavaScript引擎能極大地提升Safari解釋腳本的速度常侦。該引擎是Safari 4其中一個(gè)新特性,在2008年6月11日發(fā)布給程序員使用贬媒;最終此JavaScript引擎被稱為Nitro聋亡。
在瀏覽器開發(fā)者之間展開了一場開發(fā)更快的JavaScript引擎的競賽。2008年际乘,Chrome瀏覽器因它的JavaScript性能而被受稱贊坡倔,但是其它瀏覽器馬上使用了更快的JavaScript引擎。之后,Chrome瀏覽器在性能上獲得領(lǐng)先罪塔,其長處在于它高速的性能和JavaScript的處理速度投蝉,這些都由許多網(wǎng)站在主要的瀏覽器之間的速度測試中得到驗(yàn)證。隨著WebKit的Squirrelfish Extreme和Mozilla的TraceMonkey JavaScript虛擬機(jī) 出現(xiàn)征堪,Chrome的JavaScript執(zhí)行速度就被超越了瘩缆。Google丹麥在Chrome 2中開發(fā)了更快速的V8引擎。
一個(gè)典型的瀏覽器有一個(gè)圖形引擎和一個(gè)獨(dú)立的JavaScript引擎佃蚜。這樣JavaScript引擎能夠被更方便的測試庸娱、重新生成或者在另一些項(xiàng)目中使用。例如Carakan被用在Presto中爽锥,Nitro被用在WebKit中涌韩,SpiderMonkey被用在Gecko中畔柔,KJS被用在KHTML中氯夷,Rhino默認(rèn)不包含任何布局引擎。但還有其他組合靶擦,例如V8與WebKit被用于Chrome瀏覽器中腮考。JavaScript引擎能為程序員提供部分操作瀏覽器的功能(網(wǎng)絡(luò)、DOM玄捕、外部事件踩蔚、HTML5視頻、canvas和存儲(chǔ))枚粘。
Sunspider是一個(gè)JavaScript實(shí)用基準(zhǔn)測試通過一系列關(guān)于JavaScript語言的腳本測試JavaScript引擎的速度馅闽。Sunspider不測試無關(guān)于JavaScript的特性(不使用HTML、CSS和無網(wǎng)絡(luò)情況下)馍迄。
實(shí)現(xiàn)
參見:ECMAScript引擎列表 JavaScript是一種ECMAScript方言福也,在許多程序中得以實(shí)現(xiàn),特別是在網(wǎng)頁瀏覽器攀圈。這些方言通常擴(kuò)展了語言暴凑,或者標(biāo)準(zhǔn)庫和相關(guān)API,例如W3C定義的DOM赘来。這意味著以一種方言實(shí)現(xiàn)的程序不兼容于另一種方言的實(shí)現(xiàn)现喳,除非程序使用了方言中的公共子集所具有的特性和API。
在實(shí)現(xiàn)和方言中存在著一些差別犬辰。一種語言的方言有一些與語言不同的地方嗦篱。實(shí)現(xiàn)能夠執(zhí)行該語言或方言編寫的程序。