MIT開發(fā)Polaris,使網(wǎng)頁載入加快34%

責任編輯:editor006

作者: Sergio De Simone

2016-03-16 16:06:11

摘自:INFOQ

Polaris是一款新穎的JavaScript框架,可以幫助網(wǎng)頁加載時間平均減少34%。Scout通過提供細粒度相依圖,使瀏覽器能更好地安排資源加載,Polaris JavaScript調(diào)度器的作用就顯現(xiàn)了出來。

Polaris是一款新穎的JavaScript框架,可以幫助網(wǎng)頁加載時間平均減少34%。這款框架是由麻省理工學院(MIT)計算機科學與人工智能實驗室(CSAIL)與哈佛大學的研究人員共同開發(fā), Polaris可幫助減少網(wǎng)絡往返中產(chǎn)生的延時。

根據(jù)會在下一期USENIX組織的NSDI研討會上發(fā)表的論文,MIT的博士生Ravi Netravali以及其他人基于兩個工具解釋了這個新方法:

Scout可以追蹤在頁面加載過程中出現(xiàn)的JavaScript堆和DOM內(nèi)的細粒度數(shù)據(jù)流。 Polaris是JavaScript客戶端調(diào)度器,可載入Scout圖像來合成一個網(wǎng)頁。

相依性分析是被普遍使用在瀏覽器加載資源方法優(yōu)化的技術。根據(jù)Netravali所說,在Scout之前,這種分析是基于HTML標簽之間的語意關系完成的,但是它缺失了許多細粒度相依性,我們在下圖中可以看到一個實例。

從另一方面來說,Scout正在努力發(fā)掘HTML層面的相依性,JavaScript文件之間的相依性以及JavaScript和DOM元素間的相依性。

Scout通過提供細粒度相依圖,使瀏覽器能更好地安排資源加載,Polaris JavaScript調(diào)度器的作用就顯現(xiàn)了出來。Polaris可以在普通的瀏覽器上正常運行,也可以根據(jù)頁面的Scout圖計算動態(tài)的臨界荷載路徑,其服務器能夠與它所提供服務的HTML頁面和Polaris自身相關聯(lián)。從定義上來說,動態(tài)的臨界荷載路徑是當前擁有最多未解決對象的路徑,與靜態(tài)加載路徑不同,它由Scout提供并受到順序和以及網(wǎng)絡讀取完畢延遲的影響。

Polaris根據(jù)動態(tài)的臨界荷載路徑劃分了讀取和評估對象的先后順序,它致力于平行利用客戶端CPU及網(wǎng)絡,并保持客戶端網(wǎng)絡通道都在使用,給瀏覽器限制最大網(wǎng)絡同時請求數(shù)目。

Polaris項目的研究人員在不同的網(wǎng)絡環(huán)境下測試了他們的系統(tǒng),“從25ms到500ms的延遲,從1Mbps到25Mbps的帶寬”,以及在200個大眾網(wǎng)站上進行了測試。他們認為,這表明了在平均情況下,減少的時間多達34%,而在95%的情況下,時間的減少可以達到50%。性能隨著網(wǎng)站的改變而改變,復雜的頁面會較高,而大量運用緩存的頁面則會較低。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號