網絡優化

網絡優化主要從三個方面進行

優化首先要弄清楚現狀,需要服務端和客戶端協同排查和打點統計。主要從速度、成功率、流量三方面來做優化。

  1. Gzip壓縮
    HTTP協議上的Gzip編碼是一種用來改進WEB應用程序性能的技術,用來減少傳輸數據量大小,減少傳輸數據量大小有兩個明顯的好處:

    • 以減少流量消耗
    • 可以減少傳輸的時間
  2. IP直連與HttpDns
    DNS解析的失敗率佔聯網失敗中很大一種,而且首次域名解析一般需要幾百毫秒。針對此,我們可以不用域名,才用IP直連省去 DNS 解析過程,節省這部分時間

  3. 流量
    使用WebP格式;同樣的照片,採用WebP格式可大幅節省流量,相對於JPG格式的圖片,流量能節省將近 25% 到 35 %;相對於 PNG 格式的圖片,流量可以節省將近80%。最重要的是使用WebP之後圖片質量也沒有改變。
    使用縮略圖;App中需要加載的圖片按需加載,列表中的圖片根據需要的尺寸加載合適的縮略圖即可,只有用戶查看大圖的時候纔去加載原圖。不僅節省流量,同時也能節省內存!之前使用某公司的圖片存儲服務在原圖鏈接之後拼接寬高參數,根據參數的不同返回相應的圖片。

  4. 協議層的優化
    使用最新的協議,Http協議有多個版本:0.9、1.0、1.1、2等。新版本的協議經過再次的優化,例如:
    Http1.1版本引入了“持久連接”,多個請求被複用,無需重建TCP連接,而TCP連接在移動互聯網的場景下成本很高,節省了時間與資源;
    Http2引入了“多工”、頭信息壓縮、服務器推送等特性。

新的版本不僅可以節省資源,同樣可以減少流量;

  1. 合併打包
    合併網絡請求,減少請求次數。對於一些接口類如統計,無需實時上報,將統計信息保存在本地,然後根據策略統一上傳。這樣頭信息僅需上傳一次,減少了流量也節省了資源

  2. 網絡緩存
    對服務端返回數據進行緩存,設定有效時間,有效時間之內不走網絡請求,減少流量消耗

  3. 網絡狀態
    根據網絡狀態對網絡請求進行區別對待,2G與Wifi狀態下網絡質量肯定是不一樣的,那對應的網絡策略也應該是不一樣的。例如:在Wifi場景下可以進行數據的預取、一些統計的集中上傳等;而在2G場景下此類操作以及網絡請求的次數策略都應該調低。

  4. 其他
    對於網絡優化,實際上和內存優化一樣,是一項投入巨大的事情。提升網絡的成功率尤爲困難。因此建議優先進行流量優化,減少干擾項;
    弱網不僅僅指代網絡不好,移動互聯網的網絡帶寬很容易出現“跳變”,下一秒的傳送速度可能降到前一秒的幾十分之一;而且即便是信號滿格也傳不出一個字節;
    對於真正的弱網,可以使用抓包工具進行模擬,也有聰明的小夥伴使用wifi精靈進行限速;
    Facebook的開源項目augmented-traffic-control可以模擬不同的網絡環境,針對帶寬、時延抖動、丟包率、錯包率、包重排序率等方面,堪稱弱網調試神器;
    數據格式大小比較,Protocol Buffer是Google的一種數據交換的格式,它獨立於語言,獨立於平臺。相較於目前常用的Json,數據量更小,意味着傳輸速度也更快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章