跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 SpiderMonkey 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
SpiderMonkey
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''SpiderMonkey'''是世界上頭一款 JavaScript ia̋n-jín,由前網景公司的布蘭登 ・ 艾克設計,尾期由 Mozilla 基金會咧維護,以開放原始碼發佈。目前為 Mozilla Firefox 網頁瀏覽器所使用的 JavaScript ia̋n-jín,並且去予斷去其他的誠濟環境,比如講 GNOME 三桌面。 ==歷史== 一九九五年,艾克予人招著 Netscape,目的是予伊佇瀏覽器當中實作 Scheme 程式語言,所以伊佇咧十工開發出 JavaScript(做工程管理決定這个程式語言著愛生做像 Java 時,使用 Scheme 的想法予人放棄)。 了後艾克著愛為這个重大的技術負債付出代價,佇咧一九九六年秋天,艾克留佇厝內兩禮拜,而且重寫矣 Mocha 程式庫,嘛是尾仔逐家知影的 SpiderMonkey。SpiderMonkey 這个名字源自於電影脯四佮大頭卵橫貫美國,電影內底的角色 Tom Anderson 講著,主要演員就親像一對蜘蛛猴(Spider Monkey)翁仔某咧自慰。二空一一年,艾克將 SpiderMonkey 程式碼的管理交予戴夫 ・ 曼達林(Dave Mandelin)。 ===TraceMonkey=== TraceMonkey 是頭一个為 JavaScript 語言編寫的 JIT 編譯器,佇二空空八年八月二三發布並且頭先作為 Firefox 三-c五的 SpiderMonkey 中的編譯 ia̋n-jín。相比並 Firefox 三更零的編譯器,伊提供矣 _ 懸到二十到四十倍的效能改善 _。 比起編譯全部函式,TraceMonkey 採用追蹤即時編譯(trace Just-in-time Compilation)將 JavaScript 編譯做二進位碼(Binary code)以提高執行效能,伊的運作方式是佇咧執行期間透過追蹤佮記錄控制流程佮資料類型,會當用佇建構追蹤樹仔(Trace Trees), 用生做懸度最佳化路徑的原生碼,追蹤樹仔技術由爾灣加州大學研究團隊貢獻,安德里亞斯 ・ 加爾是這个團隊的負責人。 JägerMonkey 的增進,予得 TraceMonkey 予人放捒,特別是佇咧 SpiderMonkey 中類型推論 ia̋n-jín 的開發,TraceMonkey 自 Firefox 十一開始已經予人停止使用。 ===JägerMonkey=== JägerMonkey 由 Mozilla 自二空一空年年初開發,佇內部予人叫做是 MethodJIT,伊予人用來改善效能,特別是做某一寡情形下 TraceMonkey 無法度生穩定的原生碼。JägerMonkey 佇咧 Mozilla Firefox 四開始使用,是用組合編譯(Method JIT)和組譯器(Assembler), 伊的組譯器移植自 WebKit 的 Nitro ia̋n-jín(SFX,SquirrelFish Extreme)。 尾期 Method JIT 佮 TraceMonkey 的 Tracing JIT 整合,使 SpiderMonkey 的速度閣較緊咧。 JägerMonkey 的運作誠無仝款其他編譯器,傳統的編譯器是藉著建立控制流圖並共其最佳化,JägerMonkey 是透過重複線性進前循環 SpiderMonkey 位元組碼,也就是內部函式表示法。雖罔這種方式阻礙重新排序指令的最佳化,猶毋過這對 JavaScript 這个經常改變數類型需要重新編譯的語言來講,JägerMonkey 有快速編譯的優勢。 Mozilla 佇咧 JägerMonkey 中實做一个臨界值的最佳化,重要的猶閣有多形態內嵌緊取(Polymorphic inline caching)佮類型推論,Kraken 和 V 八測試分數顯示,類型推論會當分別帶來百分之四十四佮百分之三十的分數提升。 TraceMonkey 佮 JägerMonkey 的 JIT 技術的𫝛在一篇 hacks . mozilla . org 的文章內底有做解說,深入的技術鋩角會當佇一篇由 SpiderMonkey 的開發者 Chris Leary 的文章當中取得,閣較濟技術資訊閣會當佇其他開發者的部落格中揣著:dvander、dmandelin。 ==標準== SpiderMonkey 實作矣 ECMA 抹兩百六十二第五孵一版(ECMAScript)佮其他真濟特色,而且 ECMA 被三百五十七(ECMAScript for XML ( E 四 X ))已經佇二空一三年取消支援。 就算 SpiderMonkey 佇咧 Firefox 中予人使用,伊並無提供一寡主要的環境,親像文件模型(DOM)。 ==內部== SpiderMonkey 是以 C 和 C + + 語言編寫,並且包括直譯器、IonMonkey 即時編譯佮糞埽回收器。 ===IonMonkey=== IonMonkey 是 Mozilla 的第三个 JIT 編譯器,伊啟用真濟新的最佳化技術,但是遮的特色無法度佇咧進前 JägerMonkey 架構運行。 IonMonkey 閣較成做傳統的編譯器,伊使用中央表示層(IR,Intermediate representation)的靜態單才值形式會當共 SpiderMonkey 的位元組碼轉換做控制流圖(Control Flow Graph), 這个結構令其他的語言使用的最佳化技術會當用佇咧 JavaScript,其中包括形態的特殊化(type specialization)、 行內函式(Inline function)、 線性掃描的暫存器組態(linear scan register allocator)、 死碼刪除(Dead code elimination)以及盡量共程式徙出來箍仔外(Loop-Invariant Code Motion)。 該編譯器會當佇 ARM、X 八十六佮 X 八十六鼻六十四上快速的將 JavaScript 函式轉做原生碼。 二空一三年初發行的 Firefox 十八中開始採用 IonMonkey 並共做預設 ia̋n-jín,這改進了 TraceMonkey 佮 JaegerMonkey 袂對程式碼來進行解析、自動運行最佳化的缺點。。 ===OdinMonkey=== OdinMonkey 予人用佇最佳化 JavaScript 的子集 asm . js,OdinMonkey 毋是一个 JIT 編譯器,伊猶原採用 IonMonkey 當做編譯器,這佇二空一三年六月二五正式釋放的 Firefox 二十二起採用。 ==實作== SpiderMonkey 會當予人騙入去應用程式底,並為應用程式提供執行 JavaScript 的能力。無完整名單如下: * Mozilla Firefox、Thunderbird、SeaMonkey * Adobe Acrobat、Adobe Reader、Adobe Flash Professional、Adobe Dreamweaver * GNOME 桌面環境,第三版佮閣較懸版本 * Yahoo ! Widgets * UOX 三,_ 網路創世紀 _ 私人侍服器 * FreeSWITCH,開放原始碼通信軟體 * 零 A . D .,即時戰略遊戲 * ELinks,純文字網頁瀏覽器 * Synchronet,BBS、電子郵件佮侍服器軟體 SpiderMonkey 亦提供了 JavaScript Shell,伊是一个互動式開發環境,會當予開發者使用命令列來執行 JavaScript 程式。 真濟大型的組織使用 SpiderMonkey 來管理𪜶前端應用程式的 JavaScript。 ==參考資料== ==外部連結== * 官方網站 * Are We Fast Yet ?—— 官方基準佮比較 [[分類: 待校正]]
返回到「
SpiderMonkey
」。