讓Firefox 3.1超快的祕密æ¦å™¨ï¼šTraceMonkey
為了讓Firefoxèƒ½å¤ èˆ‡æ¡Œé¢ç«¯ç¨‹å¼åŠå„種新興應用技術如Microsoft Silverlight與Adobe Flash相競çˆï¼ŒMozilla於上週五釋出TraceMonkey,å¯åœ¨Mozilla JavaScript引擎ï¼SpiderMonkeyä¸åŸ·è¡ŒåŽŸç”Ÿç¨‹å¼ç¢¼ã€‚
TraceMonkey計畫的目標為改善Mozilla JavaScript引擎,並æé«˜ç€è¦½å™¨ç”¢ç”Ÿé é¢èˆ‡å›žæ‡‰æ™‚間的速度。
Mozilla在Firefox 3.1 alpha測試版ä¸å…§å»ºTraceMonkey,雖然é è¨ä¸æœƒé–‹å•ŸTraceMonkeyæ˜¯å› ç‚ºé™¤éŒ¯å°šæœªå®Œæˆï¼Œå¾…將來版本穩定,啟動TraceMonkey後,在Firefoxç€è¦½å™¨ä¸åŸ·è¡ŒJavaScript的速度將會更快。
「若使用者執行如影åƒè™•ç†ç‰é‹ç®—,目å‰å¯å¾—到6至7å€çš„æ•ˆèƒ½ï¼Œè€Œä¸”未來有機會å†åŠ å€ï¼Œã€Mozilla技術長Brendan Eichè¡¨ç¤ºï¼šã€Œè‹¥ä½ åŸ·è¡Œå°åž‹çš„迴圈é‹ç®—,所得到的效能甚至å¯èƒ½å¢žåŠ è‡³20至40å€ã€‚ã€
TraceMonkeyç²å¾—åŠ å·žå¤§å¸Irvineå¸å€çš„ç ”ç©¶ç§‘å¸å®¶Andreas Galå”助,使用一種稱之為「追蹤樹(trace trees)ã€çš„æŠ€è¡“。Mozilla工程副總Mike Schroepfer(å³å°‡é›¢é–‹å‰åŽ»Facebook)則貼出一段示範影片,展示é€éŽFirefox線上編修圖片與使用專屬圖片編輯軟體在使用介é¢ç¶“驗上的回應時間比較。
「我們æ£åœ¨å˜—試拓展ç€è¦½å™¨çš„å¯èƒ½æ€§ï¼Œã€Eichè¡¨ç¤ºï¼Œä¸€æ—¦å¢žåŠ JavaScript的執行效能,在Webå¹³å°ä¸Šé–‹ç™¼åœ–å½¢æ‡‰ç”¨èˆ‡éŠæˆ²ä¾¿èƒ½å¤ å¾—åˆ°ç›¸ç•¶å¤šçš„åŠ©ç›Šã€‚ã€Œç•¢ç«Ÿä¸æ˜¯æ‰€æœ‰äººéƒ½æœƒä¸‹è¼‰å®‰è£å¤–掛套件。ã€
è‹¥è¦ä»¥é–‹æ”¾åŽŸå§‹ç¢¼å–ä»£å°ˆå±¬è²¼åœ–æŠ€è¡“ï¼Œå¢žåŠ ç€è¦½å™¨æ•ˆèƒ½å‰‡æœ‰å…¶å¿…è¦ï¼Œã€Œè‹¥ç€è¦½å™¨åªèƒ½åŸ·è¡ŒJavaScript且效能低è½ï¼Œæˆ‘們擔心最終所有的Web內容åªèƒ½æŠ•é 如Silverlightçš„å°é–‰å¹³å°ã€‚ã€Eich補充表示為é”到開放的目的,Mozilla也支æ´HTML 5è¦æ ¼çš„canvas貼圖元件與Ogg視訊標準。
è‹¥Mozillaçš„æ”¿ç–æˆåŠŸï¼Œç„¡ç–‘ç‚ºç•¶å‰ç«¶çˆæ¿€çƒˆçš„多媒體網路應用程å¼(Rich Internet Application)開發投下一枚震撼彈。如åŒEich所見,RIA的發展有其風險,「其他RIAå¹³å°ä¸¦éžç€è¦½å™¨ï¼Œç„¡æ³•åƒç€è¦½å™¨èˆ¬é€æ¼¸æ“´å……åŠ å€¼åŠŸèƒ½ã€‚ã€
Eich表示當年Google推出Google Mapsæœå‹™å»ä¸éœ€è¦å®‰è£ä»»ä½•外掛程å¼ï¼Œè‘—å¯¦ä»¤ä»–å€‘åš‡äº†ä¸€è·³ï¼Œä»–å¸Œæœ›ä¸æ–·å¢žåŠ æ•ˆèƒ½çš„ç€è¦½å™¨ï¼Œä¹Ÿèƒ½å¤ 拋磚引玉å¸å¼•è»Ÿé«”å•†é–‹ç™¼å‡ºåŒæ¨£é©šäººçš„æ‡‰ç”¨ç¨‹å¼ã€‚
Eich表示,Firefox 3.1將於今年底å‰å®Œæˆé–‹ç™¼ã€‚
何謂TraceMonkey
TraceMonkeyçš„å稱來自於Mozillaçš„JavaScriptè§£æžå¼•擎ï¼SpiderMonkeyèˆ‡åŠ å·žå¤§å¸æ•™æŽˆAndreas Galç‰äººæ‰€æä¾›çš„æŠ€è¡“ï¼tracing。Galç›®å‰ç‚ºTraceMonkeyçš„å°ˆæ¡ˆé ˜å°Žäººã€‚
簡單來說,TraceMonkeyæ˜¯ä¸€å¥—ã€Œå³æ™‚ç·¨è¯å™¨ã€ï¼Œå¯å°‡ç¨‹å¼èªžè¨€å³æ™‚ç·¨è¯æˆæ©Ÿå™¨èªžè¨€ä¸Ÿçµ¦é›»è…¦åŸ·è¡Œã€‚多數的桌é¢ç«¯ç¨‹å¼å‡æ˜¯å±¬æ–¼äº‹å…ˆç·¨è¯å¥½çš„二元機器碼(binary code),但JavaScript是一種程åºèªžè¨€ï¼Œé€šå¸¸æ˜¯é€æ¢åŸ·è¡Œï¼Œå› æ¤æ•ˆèƒ½ä½Žè½ã€‚
è€Œå³æ™‚ç·¨è¯å™¨(just-in-time compiler)則是當使用者ç€è¦½æ–°ç¶²é 時,將網站傳é€ä¾†çš„JavaScriptç¢¼ç·¨è¯æˆäºŒå…ƒæ©Ÿå™¨ç¢¼ï¼Œä½†TraceMonkey並éžç·¨è¯æ‰€æœ‰é€ä¾†çš„JavaScript碼,而在追蹤與記錄JavaScript程å¼åŸ·è¡Œå¾Œï¼ŒTraceMonkey將會找出容易耗費大é‡åŸ·è¡Œæ™‚間的程å¼è¿´åœˆï¼Œç„¶å¾Œå†å°‡é€™äº›è¿´åœˆç·¨è¯æˆå¯åŸ·è¡Œç¢¼ã€‚
傳統的編è¯å™¨(compiler)è¨è¨ˆç”¨ä¾†ç·¨è¯æ•´æ”¯ç¨‹å¼ï¼Œå°‡æ‰€æœ‰çš„程å¼å‹•ä½œå…¨éƒ¨ç·¨è¯æˆå¯åŸ·è¡Œç¢¼ï¼Œå› æ¤ç·¨è¯å·¥ä½œç›¸ç•¶è€—時耗力。而TracingæŠ€è¡“å°‡æœƒæ ¹æ“šå¯¦éš›çš„ç¨‹å¼åŸ·è¡Œå‹•作,åªç·¨è¯å¯¦éš›è€—用電腦é‹ç®—資æºçš„程å¼ç¢¼ã€‚
é€éŽæ¿ƒç¸®(Concentration)特點,TraceMonkeyä¸éœ€è¦å¤§é‡è¨˜æ†¶é«”或是載入速度慢的外掛程å¼ï¼Œå› æ¤ä¹Ÿé©åˆè¡Œå‹•è£ç½®ä½¿ç”¨ï¼Œé€™ä¹Ÿæ˜¯æœªä¾†Moziilaçš„é‡è¦é–‹ç™¼é …目之一。
當然,改善Web應用程å¼é‚„有許多空間,Mozilla下一æ¥è¦æ”¹å–„DOM,這是ç€è¦½å™¨ç”¨ä¾†æç¹ªèˆ‡è™•ç†ç¶²é 用的文件物件模組元件。
Firefox 3.1的其他é‡å¤§ç‰¹é»ž
除了TraceMonkey外,Firefox 3.1也將支æ´JavaScript程å¼çš„å¤šåŸ·è¡Œç·’åŠŸèƒ½ï¼Œæ”¯æ´æ–°æ¬¾å¤šæ ¸å¿ƒè™•ç†å™¨ï¼Œèƒ½å¤ åŒæ™‚執行多é“程å¼ã€‚這表示JavaScriptèƒ½å¤ å°‡æŸäº›é‹ç®—工作丟到背景去執行。
å¦ä¸€é …ç‰¹é»žå‰‡æ˜¯å…§å»ºæ’æ”¾Ogg Vorbis音樂與Ogg Theoraå½±ç‰‡çš„èƒ½åŠ›ï¼Œå„˜ç®¡è©²ç·¨ç¢¼æ ¼å¼é‚„比ä¸ä¸ŠMP3æ ¼å¼ä¾†å¾—æ™®é,但OggæŽ¡é–‹æ”¾åŽŸå§‹ç¢¼æŽˆæ¬Šæ¢æ¬¾ï¼Œå› æ¤å¯ä»¥ä½¿ç”¨åœ¨å…¶ä»–開放原始碼軟體如Firefox。












