作者SicInfit ()
看板Browsers
標題Re: [-Fx-] Firefox 4,我們可以期待些什麼?
時間Wed Jun 30 04:40:46 2010
嗯... 來賣弄一下最近研究的心得吧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