<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=SpiderMonkey</id>
	<title>SpiderMonkey - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=SpiderMonkey"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=SpiderMonkey&amp;action=history"/>
	<updated>2026-04-12T15:39:33Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=SpiderMonkey&amp;diff=365467&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=SpiderMonkey&amp;diff=365467&amp;oldid=prev"/>
		<updated>2025-08-22T03:59:04Z</updated>

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