看板 Browsers 關於我們 聯絡資訊
嗯... 來賣弄一下最近研究的心得吧XD(誤) !警告,本篇內含淺量技術內容! 首先,現在的引擎都使用上JIT了(just-in-time即時編譯,見http://goo.gl/uH0q) 但其中,WebKit核心的Safari/Chrome所運用的,是叫做「method JIT」的方法, 而Firefox則是使用自己研究出來的「tracing JIT」。(好樣的!) 這兩種處理方法有什麼不同呢? Firefox現在所使用的JavaScript引擎叫做「TraceMonkey」, 是最初的「SpiderMonkey」的改進版,(Safari的則是叫「Nitro」,Chrome是「V8」) 它對比於舊版最大的進步,就是採用了所謂的「tracing」技法! Tracing的作用,大致上就是會沿著JavaScript碼去看,當遇到迴圈等複雜架構時, 會將它拆開來處理,再牽涉到阿哩阿扎一些東西以後,整體效能就提昇了! 另一方面,method JIT則是把那個函式(function,或"method")直接整堆送進去, 所以method的速度上,當然沒有tracing快。 等等... 你是說沒有tracing快嗎?= =a 是的!Firefox的TraceMonkey其實是個很強大的玩意吶! 那... 為什麼目前為止我們所看到的,卻是Chrome/Safari把Firefox打趴呢? 原因很簡單,因為,不是每句code都是可以trace的...囧 遇到可以trace的code的時候,tracing絕對打趴懶人法method, 但是如果trace到最後卡住了(遞迴函式,或有夠骯髒的複雜code,或根本不適用等等), 那下場就非‧常‧難‧看了。 Tracing失敗以後,Firefox處理那段code的方法,就變成把它直接丟到老扣扣的直譯器去 結果就是效能會衰弱到2007年左右的瀏覽器的程度(FF3.5、Safari4、Chrome出來之前... 所以少部分的效能增加+大部分的效能大減=輸了!(我不是在說世足賭盤... = =) 解法?火狐四‧〇為您隆重呈現,新一代「JägerMonkey」!(名字看起來就很威...@@) 簡單來說,JägerMonkey的目標,就是先提昇Firefox處理一般函式的method速度, 理想的話,光這點就有潛力可以大幅接近Safari/Chrome, 還沒完咧!趕上以後再以祖傳tracing大法加持!一舉攻下JavaScript寶座吼吼! 欸... 聽起來好像不太可能嗎?那讓我帶大家追一下現在的進度吧~ 首先,請大家造訪一下這個網頁:http://www.arewefastyet.com/ 哇嗚,眼花撩亂了?不過一開始會注意到的,一定是那條直直往下衝的黑線吧。 但是要先請大家看一下淺藍色的,名叫「moz method JIT」的線, 沒錯,這就是Firefox舊版的method引擎,當下面還滿快的橘色線tracing失效時, 火狐就瞬間掉回阿公級速度,正負加起來當然不夠快!這怎麼行呢? 所以團隊現在呢,就是在對method做最佳化,目前採用了一個叫「FatValue」的方法, 也就是那條「moz fv method JIT」黑線,從圖中可以看到成果相當令人驚嘆! 從採用開始到現在短短兩個禮拜間,它已經一路下殺到近逼tracing JIT的速度了! 等愈來愈多的最佳化加入以後,再加上tracing及其他的改進,待正式版推出以後, 「So fx4 has TM+JM-w/fatvals-and-maybe-some-static-analysis magic thrown in.」 這麼多改進的融合,說不定火狐真的又可以,再一次的穩坐瀏覽器龍頭寶座~(灑花) 還是覺得不太可能嗎? 沒關係!我也還有點懷疑...XDD 不過看著趨勢線每天往下掉, 還真是有種莫名的快感啊 = = 說實在的,除了IE真的是已經被我私心唾棄已久了以外,其他各家瀏覽器的處理速度上, 一般使用其實都已經夠快了,所以JavaScript引擎有一大部分是跟測試跑出來的分數, 到底好不好看有關... (它就是會影響市場,沒辦法) 然而除了JavaScript加速以外,整體執行速度也一定是會提昇的, 再加上許多許多未來的新功能及增強,我相信Firefox 4.0一定是值得等待的 >///<! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.245.202
Kreen:我猜明年才會出正式板(逃) 06/30 05:03
※ 編輯: SicInfit 來自: 140.112.245.202 (06/30 06:20)
art1:有支援xp嗎? 06/30 07:05
ICEFTP:Fx 4應該有支援XP,但限SP3以上,硬體加速可能沒有 06/30 07:46
AlanLive: 那 JavaScript 的速度會影響到 UI 跟擴展的效率嗎? 06/30 07:50
abccbaandy:說真的,我覺得網路影響比較大...網頁寫得差的也不是 06/30 08:54
abccbaandy:到處都有吧 06/30 08:54
JFCC:我最近chrome跟FF都交叉使用 chrome開起來感覺是快很多 06/30 09:51
JFCC:可是 切換taq的時候 卻要等好一陣子 才會秀出網頁 很困擾 06/30 09:52
abccbaandy:GC的分頁號稱不會互相影響,但其實還是會... 06/30 10:45
AlanLive:那應該是 process 跟 process 之間的影響吧 06/30 11:45
MikuruXshana:推一個XD 06/30 11:53
Holocaust123:好期待呀> < 06/30 12:40
papa:是不是弄反了..Trace碰上遞迴函式速度會變慢吧? 06/30 12:59
ybite:Fatval只是Method JIT正在施工中的Code部分 06/30 13:22
ybite:修正點應該是過大數值的Tracing緩慢問題(Bug 571623) 06/30 13:24
ybite:改完之後應該會匯回Jaegarmonkey本線 06/30 13:24
di3xyo0z:我喜歡新UI~,比起現在介面好太多了 06/30 13:45
kissahping:GC的分頁還是會互相影響,常常發生一個當,整體停擺... 06/30 13:54
kissahping:想從工作管理員關掉當掉分頁,也不知道該關掉哪一個... 06/30 13:55
whogotme:精彩, 原來是在閉關修煉中啊,準備放大絕... 06/30 15:45
sci:顯卡要賽山豬,瀏覽器也要賽javascript ? 06/30 16:54
wisehuang:加油,期待firefox再進化~ 06/30 17:21
doom3:FX4 D2D硬體加速JS升級 不錯耶!超期待! 06/30 17:51
Cicce:龍頭不是IE穩坐嗎...( ′-`)y-~ 06/30 18:25
kira925:Opera表示: 06/30 18:35
Weal:Opera又被鬼隱 哭哭 06/30 18:52
tsukiyomi:私心期待火狐市佔低一點...防毒防木馬阿XD 06/30 22:22
kratistos:推 07/01 16:13
SicInfit:arewefastyet上的就method已經被method w/fv取代囉 07/01 19:48
SicInfit: 舊 07/01 19:49
guteres:那資源到底會吃多少 07/02 00:51
SicInfit:FF已經是資源吃最少的了吧(Opera不知...) 07/02 01:34