JavaScriptia̋n-jín
JavaScript ia̋n-jín是一个專門咧處理 JavaScript 指令碼的虛擬機器,一般會佮佇網頁瀏覽器之中。
歷史
佇二空空八年到二空空九年的第二改瀏覽器大戰進前,JavaScript ia̋n-jín 簡單的予人當做會當閱讀執行 JavaScript 原始碼的直譯器。
- SpiderMonkey:第一啦 JavaScript ia̋n-jín,由布蘭登 ・ 艾克佇網景公司開發,用佇咧 Netscape Navigator 網頁瀏覽器當中,由 C + + 實作。自 JavaScript 一爿五升級是誠符合 ECMA 鋪二百六十二版本三。
- Rhino:由網景公司的嗎里斯 ・ 博伊德(Norris Boyd)開發,由 Java 實作。像 SpiderMonkey 仝款,Rhino 符合 ECMA 鋪二百六十二版本三。
- Nitro:Apple Safari 四開始支援
- V 八:Google Chrome 製作
- TraceMonkey:Mozilla Firefox 三孵五開始支援目前為止,上通用的 JavaScript 宿主環境是網頁瀏覽器。網頁瀏覽器一般使用公共的 API 建立「宿主物件」通好著在矣 JavaScript 中支援 DOM。
效能演進
一个典型的瀏覽器有一个圖形 ia̋n-jín 和一个獨立的 JavaScript ia̋n-jín。按呢乎 JavaScript ia̋n-jín 會當予人閣較方便的測試、重新生成抑是佇另外一寡專案內底使用。比如講:Carakan 被用佇咧 Presto 中,Nitro 被用佇咧 WebKit 中,SpiderMonkey 被用佇咧 Gecko 中,KJS 被用佇咧 KHTML 中,Rhino 預設無包括任何布局 ia̋n-jín。但是閣有其他的組合,比如講:V 八佮 WebKit 被用佇咧 Google Chrome 中。JavaScript ia̋n-jín 會當為程式設計師提供部份操作瀏覽器的功能(網路、DOM、外部事件、HTML 五影片、canvas 佮儲存)。
Sunspider 是一个 JavaScript 實用基準測試通過一系列關於 JavaScript 語言的指令碼測試 JavaScript ia̋n-jín 的速度。Sunspider 無欲測試無關於著 JavaScript 的特性(無咧用 HTML、CSS 佮無網路狀況之下)。
這幾年來,佇瀏覽器開發者之間展開一場開發閣較緊的 JavaScript ia̋n-jín 的競賽。二空空八年,Google Chrome 因為伊的 JavaScript 效能啊若倍受呵咾,但是其他瀏覽器隨使用閣較緊的 JavaScript ia̋n-jín。了後,Google Chrome 佇效能上得著領先,因為伊的高速佇咧的效能和 JavaScript 的處理速度,遮的攏由濟濟網站佇主要的瀏覽器之間的速度試驗證得著驗證。隨著 WebKit 的 Squirrelfish Extreme 和 Mozilla 的 TraceMonkey JavaScript 虛擬機器出現,Chrome 的 JavaScript 執行速度就超越去矣。Google 丹麥佇 Chrome 二中開發矣閣較快速的 V 八 ia̋n-jín。
二空空八年六月二號,WebKit 開發團隊發佈矣 SquirrelFish—— 一个能極大地提升 Safari 解說指令碼速度的新的 JavaScript ia̋n-jín。該 ia̋n-jín 是 Safari 四其中一个新特性,佇二空空八年六月十一發布予程式設計師使用;終其尾此 JavaScript ia̋n-jín 予人叫做是 Nitro。二空空九年六月三十號,佇咧 Firefox 三-c五發布的上新技術「使某寡情況下的速度提升二十到四十倍」。
出名的 ia̋n-jín
開發中
- Rhino,由 Mozilla 基金會管理,開放原始碼,完全以 Java 編寫。
- SpiderMonkey,頭一款 JavaScript ia̋n-jín,較早用佇咧 Netscape Navigator,這陣用於 Mozilla Firefox。
- V 八,開放原始碼,由 Google 丹麥來開發,是 Google Chrome 的一部份。
- JavaScriptCore,開放原始碼,用佇咧 Safari。
- Chakra ( JScript ia̋n-jín ),用佇咧 Internet Explorer。
- Chakra ( JavaScript ia̋n-jín ),用佇咧 Microsoft Edge。
- KJS,KDE 的 ECMAScript/JavaScript ia̋n-jín,頭先由哈里 ・ 波頓開發,用佇咧 KDE 專案的 Konqueror 網頁瀏覽器當中。
停止開發
- Linear A,用佇咧 Opera 四配空至六配一版本。
- Linear B,用佇咧 Opera 七孵空至九九二版本。
- Futhark,用佇咧 Opera 九石五至十二版本。
- Carakan,用佇咧 Opera 十曉五至十二鋪一版本。
- Nashorn,Oracle 佇咧 JDK 一爿八發佈,內嵌 Java 的 javascript ia̋n-jín。佇咧 Java 十一改為著棄用並且 Java 十五正式移除。
- Narcissus,開放原始碼,由布蘭登 ・ 艾克編寫(伊也編寫矣 SpiderMonkey)。
- Tamarin,由 Adobe Labs 編寫。
實作
JavaScript 是一種 ECMAScript 方言,佇足濟程式內底會當實作,特別是佇網頁瀏覽器。遮的方言通常擴充了語言,或者是標準庫佮相關 API,比如講 W 三 C 定義的 DOM。這意味著用一種方言實作的程式無相容另外一種方言的實作,除非程式使用方言中的公共子集所有的特性佮 API。
佇實作佮方言中存在一寡差別。一種語言的方言有一寡佮語言無仝的所在。實作會當執行該語言抑是方言編寫的程式。
參考來源
外部連結
- Kraken JavaScript Benchmark-瀏覽器效能測試
- Peacekeeper-瀏覽器效能測試
- Speed-Battle-瀏覽器效能測試
- SunSpide-瀏覽器效能測試