理解延遲

延遲是指資料包從源到目的地的傳輸時間。在效能最佳化的方面,重要的是要最佳化以減少延遲的原因,並測試模擬高延遲的站點效能,以最佳化連線不良的使用者體驗。本文解釋了什麼是延遲、它如何影響效能、如何測量延遲以及如何減少延遲。

什麼是延遲?

延遲通常被認為是從使用者發出請求到響應返回到該使用者的時間。在第一個請求中,對於前 14Kb 位元組,延遲較長,因為它包括 DNS 查詢、 TCP 握手、安全 TLS 協商。後續請求將具有較少的延遲,因為與伺服器的連線已建立。

延遲描述了網路或網際網路連線上的延遲量。低延遲意味著沒有或幾乎沒有延遲。高延遲意味著存在許多延遲。提高效能的主要目標之一是減少延遲。

與單個資源(特別是基本 HTML 頁面)相關的延遲可能看起來微不足道。但網站通常涉及多個請求:HTML 包括對多個 CSS、指令碼和媒體檔案的請求。這些請求的數量和大小越大,高延遲對使用者體驗的影響就越大。

在低延遲連線上,請求的資源將幾乎立即出現。在高延遲連線上,請求傳送到資源返回之間會有明顯的延遲。我們可以透過測量資料從一個網路位置到另一個網路位置移動的速度來確定延遲量。

延遲可以透過多種方式測量,例如,傳送資源請求所需的時間,或從瀏覽器請求資源到請求資源到達瀏覽器的整個往返行程的長度。

網路限速

要模擬低頻寬網路的延遲,您可以使用開發者工具並切換到較低端的網路連線。

Emulate latency by emulating throttling

在開發者工具中,在網路表下,您可以將限速選項切換到 2G、3G 等。不同的瀏覽器開發者工具具有不同的預設選項,模擬的特性包括下載速度、上傳速度和最小延遲,或傳送資料包所需的最小時間。一些預設的大致值包括

選擇 下載速度 上傳速度 最小延遲 (ms)
GPRS 50 kbps 20 kbps 500
普通 2G 250 kbps 50 kbps 300
良好 2G 450 kbps 150 kbps 150
普通 3G 750 kbps 250 kbps 100
良好 3G 1.5 Mbps 750 kbps 40
普通 4G/LTE 4 Mbps 3 Mbps 20
DSL 2 Mbps 1 Mbps 5
Wi-Fi 30 Mbps 15 Mbps 2

網路計時

此外,在網路選項卡上,您可以檢視每個請求完成需要多長時間。我們可以檢視 267.5Kb SVG 圖片資源下載需要多長時間。

The time it took for a large SVG asset to load.

當請求在佇列中等待網路連線時,它被認為是阻塞的。當透過 HTTP 對單個伺服器進行過多的同時連線時,就會發生阻塞。如果所有連線都處於使用狀態,則瀏覽器無法下載更多資源,直到釋放一個連線,這意味著這些請求和資源被阻塞。

DNS 解析是執行 DNS 查詢所需的時間。主機名越多,需要執行的 DNS 查詢次數就越多。

連線TCP 握手 完成所需的時間。與 DNS 類似,伺服器連線的數量越多,建立伺服器連線所需的時間就越多。

TLS 握手是建立安全連線所需的時間。雖然 TLS 握手比不安全的連線需要更長的時間才能連線,但安全連線所需的額外時間是值得的。

傳送是將 HTTP 請求傳送到伺服器所需的時間。

等待是磁碟延遲,伺服器完成響應所需的時間。磁碟延遲曾經是效能關注的主要領域。但是,隨著計算機記憶體或 CPU 的改進,伺服器效能也得到了提高。根據伺服器所需內容的複雜程度,這仍然可能是一個問題。

接收是下載資源所需的時間。接收時間由網路容量和資原始檔大小共同決定。如果影像已被快取,這將幾乎是即時的。如果我們進行了限速,接收可能需要 43 秒!

測量延遲

網路延遲是指資料請求從發出請求的計算機到響應的計算機所需的時間。包括資料位元組從響應計算機返回到請求計算機所需的時間。它通常被測量為往返延遲。

磁碟延遲是指從計算機(通常是伺服器)收到請求到計算機返回響應所需的時間。