天天看點

并發連接配接數對浏覽器加載速度的測試

 每款浏覽器都有自己的預設并發連接配接數,而且浏覽器預設對同一域下的資源,隻保持一定的連接配接數,會阻塞過多的連接配接,這都會影響到浏覽器對網頁的加載速度。本文就簡單的以不同的并發連接配接數來測試加載速度。先介紹下一些基本概念,浏覽器擷取頁面顯示請求頁面的HTML代碼,然後分析HTML代碼,擷取頁面的元件(CSS檔案、JS檔案、圖檔等)。當然無論擷取HTML代碼還是元件都可能需要進行DNS解析。

  其次這些元件一般都是順序下載下傳的,比如一個CSS檔案100KB,一個JS檔案1KB,浏覽器往往需要下載下傳完CSS檔案,再下載下傳JS檔案(前提是CSS檔案出現在JS檔案前),這樣網頁顯示會很慢會一直等待那個100K的CSS檔案下載下傳完。

  當然目前浏覽器都支援并發,這樣就可以同時下載下傳CSS檔案和JS檔案,在http1.1的協定中,IE5/6/7、firefox2最多支援2個并發數,IE8、firefox2最多支援6個并發數,opera和safari最多支援8個并發數,chrome最多支援4個并發數。有興趣的使用者可以閱讀“IE和Firefox對同一域名進行請求的并發連接配接數限制”。

  這個限制,對于普通的Web應用來講,影響不算太大,畢竟正常的連接配接請求都會很快有傳回結果的,但如果在Web中要是用長連接配接的話,就可能會有比較大的問題了,尤其是在IE6裡面,長連接配接會一直占用一個連接配接數,如果你有2個長連接配接,那就更杯具了,浏覽器這時将無法向同這個Server去request了。

  也許你會覺得并發數對于浏覽器浏覽網頁的速度提高不是很明顯,我們可以通過實際測試來說明問題,使用線上浏覽器并發測試工具,位址:http://site-perf.com/

  以http://www.iefans.net為例,分别使用2個并發數和6個并發數進行測試,結果如下:

并發連接配接數對浏覽器加載速度的測試

  2個并發數的加載測試

并發連接配接數對浏覽器加載速度的測試

  2個并發數的加載時間為29秒(國外網站通路國内網站的速度比較慢)

  6個并發數的加載測試

  6個并發數的加載時間為13.2秒

  通過對比可發現在相同條件下,6個并發數的浏覽器比2個并發數的浏覽器快了15.8秒,其中等待時間從87%下降到45%,這也是并發數度的好處(既在下載下傳100K的CSS檔案也同時可以下載下傳1K的JS檔案。)

  當然這隻是最膚淺得分析,如果要研究網站的性能就盡量使等待時間下降到0,通常合并JS、CSS等檔案(同樣100MB的1個檔案進行複制速度肯定比100個1MB要快,因為IO讀取寫入耗時比傳輸大),同樣網站為了負載均衡,将不同的檔案放置于不同的域名機器下,這樣導緻了解析域名時間加長,反而影響加載速度。

出自:http://www.spasvo.com/news/html/2016121142405.html