MozTW 討論區
https://forum.moztw.org/

Tracemonkey+JägerMonkey=?
https://forum.moztw.org/viewtopic.php?f=18&t=30678
1 頁 (共 2 頁)

發表人:  orange [ 2010-07-24, 15:10 ]
文章主題 :  Tracemonkey+JägerMonkey=?

假日無聊試算了一下
--
首先回應一下標題 Tracemonkey+JägerMonkey=SpiderMonkey
而SpiderMonkey則是Firefox的Javascriopt Engine (如下圖)
圖檔

Tracemonkey 為Firefox 3.5開始採用的JIT (Just In Time compiler)
但有個缺點就是Trace 失敗時,會採用舊的方式執行Javascript (而這個方式很慢)

JägerMonkey 就是要改良這個問題的solution
它採用Method JIT + nitro assembler( this one is from WebKit)

###############以上只是單純的介紹#####################
而今天會寫這篇主要是想大約估計一下 Firefox 4.0 Javascript 會有多快
參考資料:

ARE WE FAST YET ?
Starting JägerMonkey
Mozilla Wiki JaegerMonkey

以下這些純粹只是大略估計,有一些假設的前提不一定符合現實狀況
1.假設TraceMonkey 跟 JägerMonkey 為不相依互相獨立
2.所有Javascript 在TraceMonkey 成功時的速度 約為 W/O JIT的9倍快
3.所有Javascript 在JägerMonkey 約為 W/O JIT的3倍快(現在為2.66倍)

然後開始列國中的方程式吧! (以下代數單位皆為ms)

x=tracemonkey,y=JägerMonkey,z=target
o=original tracemonkey,w=W/O JIT

x+y=z
x+3y=o (x+2.66y=o)
9x+3y=w (9x+2.66y=w)

從最新資料代入數據(w=1850.3 ,o=694),解答z
x=144.5375 , y=206.56485 , z=351.10235
可以從這邊注意到TraceMonkey 只比 JägerMonkey 稍微快一點
(從參考資料內得知JägerMonkey還有30個左右的bugs會拖累速度 未來會繼續改進)
351.1024就是目前合體後的速度, 已經趕上apple Google的速度(但差別不大)
########################################################

假設最後JägerMonkey的速度進步到跟apple, google 的速度一樣快時
(JägerMonkey 就真的是W/O JIT的三倍快)
x=144.5375 , y=183.1542 , z=327.691666
用這個來畫未來合體之後的效能參考線看看
圖檔
最下面綠色線就是TraceMonkey + JägerMonkey最為理想的速度

結論:TraceMonkey 沒有想像中的厲害,僅僅比 apple, Google快 23%
(原本以為會是好幾倍)
由於spidermonkey裡面JägerMonkey消耗的時間就佔據了一半以上,更是削弱了TraceMonkey的23%優勢
整體算下來spidermonkey只比 apple, Google快 10%
未來要更強的話大概也只有增加TraceMonkey trace的成功率,或者將不容易trace成功的轉向JägerMonkey

附加檔案:
spidermonkey.png [11.59 KiB]
被下載 2413 次
Slide11.png [20.26 KiB]
被下載 2514 次

發表人:  adam [ 2010-07-24, 21:30 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

我的想法是,JagerMonkey會不會是Trace版的v8...

發表人:  orange [ 2010-07-25, 02:03 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

個人從架構圖覺得JägerMonkey應該是扮演V8的腳色
(tracemonkey trace失敗後丟去處理的地方)
嚴格講合體後的SpiderMonkey比較像 Trace版的V8

另外我用最後那個假設 嘗試逆推回去 trace的成功率 約50%
覺得之前把trace 失敗所浪費的時間 算在tracemonkey所消耗時間有點不太合理
也就是說TraceMonkey的優勢有可能比23%更明顯
但由於有50% trace失敗浪費的時間 才將優勢降到23%

未來有可能把容易trace失敗的部分 直接跳過trace的步驟丟到JägerMonkey

發表人:  littlebtc [ 2010-07-25, 02:58 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

先看個影片吧 XD
http://www.youtube.com/watch?v=GnYs2Q2pg1M

我個人的想法是:Tracing JIT 和 Method JIT 是兩種完全不同的 JIT 技術,所以到時候在融合的時候會不會發生問題其實非常難講。搞不好 Method JIT 會快到最後把 Tracing 完全幹掉,這樣 Tracemonkey 就掰掰了 XD

我認為之所以現在要做兩隻猴子的原因是:Tracing JIT 在 Trace 成功的情況下還是超級快。

發表人:  orange [ 2010-07-25, 10:22 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

http://people.mozilla.org/~dmandelin/Su ... demos.html
螞蟻的測試蠻好,充分表達出TraceMonkey的弱點
trace failed的東西效能馬上降下來(drop food 回家模式,red ants 攻擊模式)
其中 red ants模式又比較特別一點(全部發動,trace all failed?)

JägerMonkey目前還有效能上的bug
直接來跟TraceMonkey比 black ants(搜索模式)速度不太公平
用JägerMonkey終極目標Google V8來跟TraceMonkey比black ants(搜索模式)速度
Google V8的速度還是比Tracemonkey快(就我的電腦而言)
--
如果TraceMonkey,JägerMonkey 差異性不大 或者JägerMonkey更好
TraceMonkey 大概真的會Say Goodbye (兩套JIT系統增加複雜度 卻沒有相對應的效能)

發表人:  adam [ 2010-08-06, 22:16 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

合體好像出現了,但好像沒有預期的快?

http://arewefastyet.com/?machine=6

發表人:  orange [ 2010-08-07, 13:37 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

從螞蟻測試上可以看到
JaegerMonkey 有時候有作用有時候沒有 還在努力整合吧
(beta2就這樣 beta3還是沒有很改善很多 看來不是很好整合)

不知道趕不趕得上FX 4.0

發表人:  adam [ 2010-08-09, 12:40 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

orange 寫:
http://people.mozilla.org/~dmandelin/Summit2010/demos.html
螞蟻的測試蠻好,充分表達出TraceMonkey的弱點
trace failed的東西效能馬上降下來(drop food 回家模式,red ants 攻擊模式)
其中 red ants模式又比較特別一點(全部發動,trace all failed?)

JägerMonkey目前還有效能上的bug
直接來跟TraceMonkey比 black ants(搜索模式)速度不太公平
用JägerMonkey終極目標Google V8來跟TraceMonkey比black ants(搜索模式)速度
Google V8的速度還是比Tracemonkey快(就我的電腦而言)
--
如果TraceMonkey,JägerMonkey 差異性不大 或者JägerMonkey更好
TraceMonkey 大概真的會Say Goodbye (兩套JIT系統增加複雜度 卻沒有相對應的效能)

如果真的Say Goodbye,
到頭來感覺多此一舉,畢竟令一套JIT是學來的半成品,
那不如當初用真的V8或JavaScriptCore拿來用 :(

發表人:  alex301 [ 2010-09-01, 07:07 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

WOW~ 今天 moz JM+TM 雙猴合併後 紫色閃電猴 出現大跳水!!
http://arewefastyet.com/
:lol: :lol: :lol: :lol: :lol:
--
噹噹噹! 革命尚未成功,同志仍須努力!

發表人:  gejiod [ 2010-09-01, 21:00 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

合併之後不就已經進入最後階段了嗎...
效能上還輸V8一倍....有希望看到超越V8嗎= =?

發表人:  ricktu [ 2010-10-13, 10:41 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

https://bug580468.bugzilla.mozilla.org/attachment.cgi?id=482609
Bug 580468中的"updated performance results"檔案
-mjp是JM+TM嗎????
真的超越V8了嗎???? (Sunspider中)

發表人:  Avatar [ 2010-10-13, 14:18 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

ricktu 寫:
https://bug580468.bugzilla.mozilla.org/attachment.cgi?id=482609
Bug 580468中的"updated performance results"檔案
-mjp是JM+TM嗎????
真的超越V8了嗎???? (Sunspider中)


-m是JM,-j是TM,
-mjp是JM+TM+profiling patch

發表人:  orange [ 2010-10-15, 00:31 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

JägerMonkey 速度跟apple nitro重疊了 (Are We Fast Yet? "NO"字串也被拿掉了)
跟第一篇最後面預測會重疊蠻像的(會超過nitro嗎?)
只不過沒想到tracemonkey 隨著JM改進也得到一些進展

目前TM約是第一篇的1/4時間(4倍快),JM約是1/2時間(2倍快)
TM+JM 的時間應該比第一篇最後預測可以多縮減個100ms (到200+ ms)
差距被拉出來這樣TM也才有它存在的意義
--
雖然目前X86 的TM+JM還比純JM慢...

發表人:  orange [ 2011-02-03, 15:35 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

圖檔
初步預測目標已達成
之前預測JägerMonkey跟V8差不多速度時
TM+JM會是327 ms左右(略快於V8 但差別不大)
現在JM比V8快,TM+JM 有再稍微拉出一點差距出來(315ms)
--
沒想到用找的資訊去預估 準確度還不錯

附加檔案:
screenshot1.png [10.85 KiB]
被下載 5525 次

發表人:  adam [ 2011-02-03, 16:30 ]
文章主題 :  Re: Tracemonkey+JägerMonkey=?

orange 寫:
圖檔
初步預測目標已達成
之前預測JägerMonkey跟V8差不多速度時
TM+JM會是327 ms左右(略快於V8 但差別不大)
現在JM比V8快,TM+JM 有再稍微拉出一點差距出來(315ms)
--
沒想到用找的資訊去預估 準確度還不錯

不過為什麼我還是覺得Chrome的翻頁速度比Firefox快?

還是各家瀏覽器的性能有各有所長領域?

1 頁 (共 2 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/