效能預算

效能預算是一種防止效能退化的限制。它可以應用於檔案、檔案型別、頁面上載入的所有檔案、特定指標(例如,可互動時間)、自定義指標(例如,英雄元素載入時間)或一段時間內的閾值。

我為什麼需要效能預算?

預算的存在是為了反映您可達到的目標。這是使用者體驗與其他效能指標(例如轉化率)之間的權衡。

這些目標可以是

  • 基於時間的(例如,互動時間首次內容繪製)。
  • 基於數量的(例如,JS 檔案數量/總圖片大小)。
  • 基於規則的(例如,PageSpeed 指數、Lighthouse 分數)。

它們的主要目標是防止效能退化,但它們可以提供洞察力來預測趨勢(即,在 9 月份,一週內花費了預算的 50%)。

此外,它可以揭示開發需求(例如,一個包含較小替代方案的大型庫經常被選中來解決一個常見問題)。

我如何定義效能預算?

一個預算應包含 2 個級別

  • 警告。
  • 錯誤。

警告級別允許您主動規劃任何技術債務,同時又不阻止開發或部署。

錯誤級別是一個上限,在此之下,更改將產生負面且明顯的影響。

第一步是測量您的使用者來自的裝置和連線速度(例如,在 3G 連線下使用約 200 美元的 Android 裝置),並使用多個工具。這些基於時間的指標將轉化為檔案大小預算。

減少跳出率的一個預設基準是在 3G/4G 下實現互動時間在 5 秒以內,後續載入在 2 秒以內。但是,根據您網站的具體目標和內容,您可能選擇關注其他指標。

對於像部落格或新聞網站這樣的以文字為主的網站,首次內容繪製指標更能密切反映使用者行為。(即,使用者能多快開始閱讀),這將告知檔案特定的預算(例如,字型大小),以及它們的最佳化。(例如,使用font-display來提高感知效能)。

效能預算的最終價值在於將效能對業務或產品目標的影響關聯起來。在定義指標時,您應該關注使用者體驗,這不僅決定了跳出率或轉化率,還決定了使用者返回的可能性。

我如何實現效能預算?

在開發過程中,有幾種工具可以對新資產或修改過的資產進行檢查

檔案大小檢查是防止效能退化的第一道防線,但將大小轉換回時間指標可能很困難,因為開發環境可能缺少第三方指令碼,以及CDN通常提供的最佳化。

第一步是為每個分支定義一個開發基準進行比較,開發與生產環境之間的差異精度可以作為實現更好匹配即時環境的目標。

Lighthouse BotTravis CI整合,可用於從開發 URL 收集LighthouseWebpage Test指標。該機器人將根據提供的最低分數透過或失敗。

我如何強制執行效能預算?

您越早發現可能超出預算的新增內容,就越能更好地分析您網站的當前狀態,並找出最佳化或不必要的程式碼。

但是,您應該有多個預算並保持動態。它們旨在反映您當前的目標,但允許承擔風險和進行實驗。例如,您可能會引入一個功能,該功能會增加整體載入時間,但會嘗試提高使用者參與度。(例如,使用者在頁面或網站上停留的時間)。

效能預算可以幫助您保護當前使用者的最佳行為,同時使您能夠進入新市場並提供定製體驗。

另見