證實:減小HTTP請求數能減小網頁傳輸時間

這應該是一道標準的初中數學題吧,至少初中學歷的應該能看得懂吧~(我猜的/逃瀏覽器

既然有看得懂的能力,那就開始吧~服務器


題目告訴咱們兩個關鍵詞是HTTP請求數網頁傳輸時間,那麼其餘的一些額外條件和影響因素就須要咱們去假設,那麼就~網絡

假設有資源 r1, r2, r3, r4..., rn,其大小分別爲 s1, s2, s3, s4..., sn。當前網絡環境是穩定的,每創建一個HTTP鏈接所耗時爲t,網絡傳輸速度爲b。這裏因爲是對同一個站點的請求,請求不一樣的資源時所發送的請求時間p應該相同,等待資源進行傳輸的時間w也應該相同(這個時間也能夠認爲是從服務器收到請求到開始傳輸返回結果的響應時間)。在現代瀏覽器中,常採用同時創建多個鏈接方式併發獲取資源,這裏假定併發鏈接數爲h。傳輸全部數據消耗的時間分爲四個部分:鏈接創建,發送請求,等待傳輸,資源傳送。不考慮鏈接銷燬的狀況。併發

咱們再簡單列出咱們的假設好的一些變量和常量性能

  • 資源有 r1, r2, r3, r4..., rn優化

  • 資源大小 s1, s2, s3, s4..., sncode

  • 一個HTTP鏈接耗時t資源

  • 網絡傳輸速度bget

  • 發送請求時間p數學

  • 等待資源進行傳輸的時間w

  • 併發鏈接數h

那麼在未優化時,傳輸全部數據須要耗時爲T1:

$$T1=t+np/h+nw/h+(s1+s2+s3+s4+...+sn)/bh$$

化簡爲:

$$T1=t+n(p+w)/h+(s1+s2+s3+s4+...+sn)/bh$$

假設優化後,資源數量減小到k,那麼資源有 R1, R2, R3, R4..., Rk,其大小分別爲 S1, S2, S3, S4..., Sk。創建鏈接須要消耗的時間t,網絡傳輸速度b,發送請求時間p,等待資源傳輸的時間w,併發鏈接數h均不變。

那麼在優化後,傳輸全部數據須要耗時爲T2:

$$T2=t+kp/h+kw/h+(S1+S2+S3+S4+...+Sk)/bh$$

化簡爲:

$$T2=t+k(p+w)/h+(S1+S2+S3+S4+...+Sk)/bh$$

還有一個重要因素,爲了保證優化前和優化後,用戶都能看到是同一個網頁內容,減小資源數量的方式採用的是合併資源,說明 s1+s2+s3+s4+...+sn = S1+S2+S3+S4+...+Sk,合併資源不會形成資源的總大小發生變化。故優化後,減小的網絡傳輸時間爲:

$$T1-T2=(n-k)(p+w)/h$$

看到這裏,不要告訴我已經忘了公式中的字母表明意義。好吧,我知道了,其中

  • n爲優化前的資源數

  • k爲優化後的資源數

  • p爲發送請求時間

  • w爲等待資源傳輸的時間

  • h爲併發鏈接數

經過上面的推理證實可知,要使網頁傳輸時間獲取最小值,則k取最小值1,資源最多隻能合併爲1個。固然在實際狀況下,k值應取合理值。

同時,咱們還發現發送請求時間p與等待資源進行傳輸的時間w也是對網頁傳輸時間有着巨大的影響,用戶能夠經過升級上網寬帶等方式實現縮短髮送請求時間,和站長提高服務器性能等方式實現縮短等待資源傳輸的時間來提升上網體現。

那麼最後一個問題是,你看懂了嗎?

文章首發於 https://www.linpx.com/

相關文章
相關標籤/搜索