使用實際資料,更準確地在開發人員工具中偵錯效能

Brendan Kenny
Brendan Kenny

發布日期:2025 年 4 月 4 日

修正實際效能問題,就是要縮小開發環境與使用者體驗之間的差距。本文將介紹 Chrome 開發人員工具的新功能,協助您在做出效能偵錯決策時,以實際資料而非猜測為依據。

調整期望

自 Chrome 134 版起,開發人員工具已納入CPU 節流校正功能,這項新工具可消除選擇正確 CPU 節流層級的不確定性。只要執行一次校準程序,DevTools 就會為您產生「低階行動裝置」和「中階行動裝置」節流預設設定,並針對您的開發機器進行調整。

網頁效能工作常見的不相符之處,是開發人員經常在速度較快的電腦裝置上建構網站,但許多使用者使用的都是效能較為普通的行動裝置。如果效能問題只發生在 CPU 速度較慢的裝置上,就很難追蹤。

最佳做法是在實際行動裝置上進行遠端偵錯,但 Chrome 在近十年來也支援CPU 節流,可在開發期間快速且輕量化地進行迭代。

但您應該選擇哪種 CPU 節流等級?4x?20 倍?如何判斷哪個裝置類型最符合您知道的造訪網站的裝置類型?無論你使用的是高階工作站,還是 8 年前的 Chromebook,裝置速度會如何影響這項決定?

節流校準程序

開啟「效能」面板後,環境設定會顯示下拉式選單,可用來設定 CPU 節流等級。如果您尚未執行校正作業,下拉式選單中的「校正預設值」下方會顯示兩個停用的選項,最底下則會顯示「校正…」選項。

選取這個選項後,系統會將您導向「設定」中的 CPU 節流預設值 (您也可以直接前往該頁面)。

  1. 按一下「校正」按鈕
  2. 當系統發出警告,表示即將暫時離開目前的網頁時,請按一下「繼續」
  3. 系統會執行快速基準測試,以測量目前機器的速度,並完成校正
執行 CPU 節流程序的螢幕錄製畫面

限制選項現在會填入低階和中階裝置的校正預設值。

這兩種預設值應可滿足大多數開發用途,我們通常建議使用「中階」預設值,以便與網頁上「一般」行動裝置相符。如果您知道許多使用者使用的裝置速度更慢,或是效能問題通常只發生在這些使用者身上,則「低階」選項應設定為足夠慢,才能擷取低階裝置的長尾。

最後,如果您認為校正有誤,或是本機發生變化,您隨時可以透過節流下拉式選單或設定重新校正,系統會重新執行基準測試並更新預設值。

在 DevTools 中限制 CPU 的運作方式

如果您曾好奇在 DevTools 中,CPU 節流的運作方式相當簡單。當您為分頁啟用節流功能時,Chrome 會啟動獨立的節流執行緒,中斷並暫停分頁的主執行緒,以便處理頻繁的短暫爆量。目標是將主執行緒的總暫停時間拉長,讓任何特定工作持續時間都會增加節流係數。

舉例來說,在 CPU 節流 4 倍的情況下,主執行緒會在約 75% 的時間內處於暫停狀態,因此任何主執行緒作業都會需要四倍的時間才能完成。

這種做法的優點是,它對 Chrome 的其他部分幾乎是透明的;不需要專門的程式碼就能減緩 JavaScript 或版面配置,或是瀏覽器需要執行的其他各類工作。主執行緒上的所有工作都會耗費較長時間,因為執行緒本身只允許執行一小部分時間。

CPU 節流行為類似於實際行動裝置

因此,許多類型的行動裝置 CPU 限制工作都能透過 CPU 節流模擬。舉例來說,如果互動觸發 JavaScript 和版面配置,執行結果很可能會與在行動裝置上執行的結果非常相似。

請考慮由按一下按鈕觸發的工作,執行 JavaScript 以將新元素新增至 DOM,然後要求瀏覽器執行樣式和版面配置計算,以便定位新內容:

在「Performance」面板中顯示的電腦點擊互動資料,耗時 67 毫秒
電腦上的點擊互動處理常式,耗時 67 毫秒。

使用經過校正的「中階行動裝置」CPU 節流預設值 (在這個開發機器上為 3.7 倍) 時,互動情形看起來非常相似,但持續時間大幅增加,變成長時間工作:

在啟用 CPU 節流的桌上型電腦上,點擊互動的設定檔,如效能面板所示,耗時 211 毫秒
在電腦上執行相同互動,並以中階行動 CPU 節流,耗時 211 毫秒。

在實際中介層裝置上使用遠端偵錯功能測試相同互動時,會產生非常相似的結果,無論是互動追蹤記錄的形狀和時間長度皆是如此。由於這項工作大多在主執行緒中受 CPU 限制 (執行網頁的 JavaScript 程式碼和 Chrome 的樣式和版面配置程式碼),因此經過校正的節流功能可準確重現實際的行動裝置效能:

在實際手機上點擊互動的設定檔,如效能面板所示,耗時 189 毫秒
在實際行動裝置上進行相同互動,耗時 189 毫秒。

仍想在實際行動裝置上進行測試時

雖然 CPU 節流非常實用,但無法模擬行動硬體的所有面向。在手機上,磁碟速度較慢、記憶體頻寬較受限制,而且隨時可能會啟動熱節流功能來降低執行速度。

常見的節流限制是指 GPU 密集型工作。行動裝置和電腦的 GPU 架構不同,Chrome 會在與網頁主執行緒不同的獨立程序中執行 GPU 作業。因此,開發人員工具的 CPU 節流不會影響 GPU 程序 (這其實是好事,因為這會影響開發人員工具本身和其他瀏覽器的回應速度)。

複雜的繪圖、合成和效果繁重的樣式是常見的效能問題,在開發機器上可能看起來沒問題,但在行動裝置上會發生效能不佳的情形。而且,在開發機器上嘗試重現問題時,要發現問題的存在可能相當困難。

請考慮與前述相同的互動 (按一下並在 DOM 中新增許多元素),只是這次新元素的樣式使用了過多 GPU 重型方塊陰影和模糊濾鏡

互動的開始形狀和持續時間看起來很相似,但在互動結束時,會出現長時間的新主執行緒繪圖,用於新增效果:

在啟用 CPU 節流功能的電腦上,點擊互動的設定檔 (在「效能」面板中顯示) 耗時 270 毫秒。工作最後三分之一的時間都用於繪圖作業
在桌上型電腦上,點擊互動會產生大量 GPU 效果,且 CPU 以中等等級的行動裝置進行節流,耗時 270 毫秒。

在實際的中階手機上,互動的主要執行緒部分看起來與模擬的互動部分非常相似,包括額外的繪製,但在互動結果顯示在畫面上之前,似乎有一個瘋狂的 GPU 程序執行大量工作:

在實際手機上點擊互動的剖析資料 (顯示在「效能」面板中),耗時 620 毫秒。系統會以受限追蹤記錄顯示非常類似的 Paint 項目,但這項互動主要由 GPU 項目佔用,佔用互動過程的後半部
在實際行動裝置上進行相同互動,耗時 620 毫秒。

GPU 工作會將互動時間延長 300 毫秒,而且對於筆電 GPU 來說,這項工作幾乎不存在,即使啟用 (主執行緒) CPU 節流也一樣。

還有一些其他情況也有重大的模擬缺點,例如深層依附元件頁面載入,因為在這種情況下,模擬網路節流、處理序間通訊,以及存取磁碟和記憶體快取之間會產生交互作用。

請務必在某個時間點測試實際行動裝置。如果您無法在電腦上重現實驗室中影響行動使用者的實驗室問題,請務必使用實際裝置進行遠端偵錯,看看是否有您遺漏的差異。

更多以資料為準的偵錯功能改善

我們最近推出了其他新功能,協助您更輕鬆地根據實際使用者進行偵錯設定和決策。

如果您已啟用現場資料Chrome 使用者體驗報告 (CrUX)會根據 75 百分位數使用者 (透過效能面板提供) 提供建議,協助您調整頻寬限制。如果本機測量指標與現場資料不符,即時指標檢視畫面會發出警示。先前的文章已詳細說明如何將實際的 Core Web Vitals 資料導入開發人員工具。

另外,如果追蹤記錄中評估的指標與使用者實際體驗不符,側欄中的「效能」面板深入分析資訊現在也會發出快訊。

「成效」面板側欄中的洞察資料項目。最上面一行顯示本地測量的指標,並視為良好;下一行則顯示實地測量的指標,其中兩項指標視為「需要改善」。以下是連結至相關資訊的文字,說明本機和實際環境指標不一致的原因,以及如何調整節流設定和裝置模擬
洞察資訊側欄警告,建議調整節流和模擬設定,以符合真實使用者的情況。

啟用現場資料後,系統也會使用 Core Web Vitals 的 75 百分位數,協助排定資訊在側欄中顯示的順序。舉例來說,如果使用者通常有良好的最大內容繪製 (LCP),但Interaction to Next Paint (INP) 不佳,則有助於改善 INP 的洞察資料通常會列在清單頂端。

最後,如果您曾經在多個追蹤記錄之間來回切換,或從磁碟載入追蹤記錄,可能很難記得在每個追蹤記錄中使用的行動模擬和節流設定。Performance 面板頂端的追蹤記錄選取 下拉式選單,現在會顯示每個追蹤記錄的模擬資訊。

追蹤選取下拉式選單,其中包含每個追蹤的模擬和節流設定。

停止、校正和聆聽

最終,我們需要根據實際情況做出偵錯決策:從分析和使用者回報的實際資料開始找出問題,然後在實驗室中重現這些使用者體驗,以便進行診斷。這些新的開發人員工具新增功能應該可以讓這項程序變得更簡單。

針對實地和實驗室的不同體驗,提供 CPU 節流校正和快訊,有助於減少不確定性,讓您更能掌握實際效能。開發人員工具可協助您省去設定的猜測,並突顯可能的差異,讓您能將更多時間專注於修正影響使用者的實際效能問題。

有任何改善建議或新功能想法嗎?歡迎提供意見!