你知道Chrome Network ,Size 和 Time 爲何有兩行參數嗎?

Hello,騷年們,當你們歡脫的Debug接口的時候,有沒有在乎過Chrome NetworkSizeTime兩項是兩行呢?以下圖箭頭所示:算法

借這篇文章咱們來分析一下它的含義,咱們聚焦 /api/v1/myaddress/all這個接口

關於Size列

Size有兩行:後端

  • 第一行表示的是數據的傳輸時的大小,例如上圖中的44.3KB
  • 第二行表示的是數據實際的大小441KB

解釋:

由於這個接口返回數據量比較大,因此後端採起了gzip壓縮,從響應頭的Content-Encoding咱們也能看出api

在服務器端採起 gzip壓縮算法將將原有 441KB壓縮至 44.3KB,傳輸大小縮短 10倍,大大的提升了接口傳輸的效率。

須要注意的點:

gzip壓縮只會壓縮響應體內容, 因此適用於返回數據量大的時候,若是數據量過小的話,有可能會致使數據傳輸時的大小比實際大小要大(例如加入一些額外的響應頭)服務器

通常例如SpringMVC等Web框架能夠指定數據大小到多少時使用gzip壓縮網絡


關於Time列

Time有兩行:框架

  • 第一行表示從客戶端發送請求到服務端返回全部數據所花費的總時間,對於上圖來講就是598ms
  • 第二行表示的是從客戶端發送請求到服務器端返回第一個字節所表示的時間,對於上圖來講就是118ms 咱們把鼠標放到最右邊那個藍條會有時間的詳細說明,以下

下圖是這些時間含義的解釋

解釋:

第一行的時間就表明了上圖列的全部項目:例如解析dns創建鏈接等待服務器返回數據傳輸數據性能

第二行的時間是 總時間 - 數據傳輸的時間3d

總結

從上面的分析中咱們看到 從客戶端請求到服務器處理結束準備返回數據花了118ms算蠻久了),可是在進行傳輸數據的時候花費了480mscode

每一個用戶網絡帶寬不同,對於網慢的用戶來講,這個體驗可能更差,因此在編寫代碼的時候,返回的數據量要儘可能精簡。cdn

我的以爲理解Chrome Network的參數有助於咱們對接口的性能有一個比較直觀的感受~

相關文章
相關標籤/搜索