web性能提升

優化TCP性能

將服務器內核升級到最新版本(Linux:3.2+)

1.增大TCP的初始擁塞窗口

把服務器的初始cwnd值增大到RFC 6928新規定的10段(IW10),是提升用戶體驗以及所有TCP應用性能最簡單的方式

2.慢啓動重啓

在連接空閒時禁用慢啓動可以改善瞬時發送數據的長TCP連接的性能。

3.窗口縮放

啓用窗口縮放可以增大最大接受窗口的大小,可以讓高延遲的連接達到更好的吞吐量。

4.TCP快速打開

在某些條件下,允許在第一個SYN分組中發送應用程序數據。TFO(TCP Fast Open,TCP快速打開)是一種新的優化選項,需要客戶端和服務器共同支持。爲此,首先要搞清楚你的應用程序是否可以利用這個特性。

4.1 減少傳輸冗餘的數據

4.2壓縮要傳輸的數據

4.3把服務器放到離用戶最近的地方(cdn)

4.4盡最大可能重用已建立的TCP連接。

 

 

性能打點(可參考Navigator Timing)

兼容性 https://caniuse.com/#search=nav-timing

function init() {
performance.mark("startTask1")
applicationCode()
performance.mark('endTask1')
logPerformance()
}


function logPerformance() {
   let perfEntries = performance.getEntriesByType('mark');
   for(let i = 0;i<perfEntries.length;i++){
        console.log(`Name: ${perfEntries[i].name},Type: ${perfEntries[i].startTime},Ducation: ${perfEntries[i].duration}`)
    }
   console.log(performance.timing);
}

預加載以觸發瀏覽器爲我們採用的優化機制

1.預解析特定的域名
<link rel="dns-prefetch"  href="//hostname_to_reslove.com">
2.預取得頁面後面要用的關鍵性資源
<link rel="subresource"  href="javascript/myApp.js">
3.預取得將來導航要用到的資源
<link rel="prefetch"  href="//xxx.big.jpeg">
4.根據對用戶下一個目標的預測,預渲染特定的頁面
<link rel="prerender"  href="//hostname_to_reslove.html">

warning: 注意各大瀏覽器的兼容性

 

參考

1.web性能權威指南

 

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