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
|
發表人: | 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/ -- 噹噹噹! 革命尚未成功,同志仍須努力! |
發表人: | 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) -- 沒想到用找的資訊去預估 準確度還不錯
|
發表人: | 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/ |