Google Chrome Helper (Renderer) 占用 CPU 過高怎麼辦
活動監視器裡如果出現一串 Google Chrome Helper 與 Google Chrome Helper (Renderer),第一個決定不該是關掉哪幾個。Chrome 是 多行程瀏覽器:一個瀏覽器行程協調許多子行程。多出來的 Helper 是這個設計的正常樣貌。真正要查的是頁面穩定後,某個 Helper 在 CPU、記憶體或能源上仍居高不下。那種情況需要對應到具體工作。大量結束行程會蓋掉真正的負責人,也可能丟掉尚未儲存的內容。多個 Helper 並不表示有惡意軟體,活動監視器裡持續的高占用只是排查線索,不是結論。
Chrome Helper (Renderer) 正在高占用時
- 在 Chrome 中打開「視窗 > 工作管理員」,依 CPU 或記憶體占用排序。
- 把高占用工作對應到具體分頁、擴充功能、Renderer、GPU 行程或瀏覽器服務。
- 先儲存工作,只關閉已確認的那一項,再觀察活動監視器一分鐘。
占用下降並保持穩定,才表示找到了來源。如果它立刻回來,就讓行程繼續顯示,並依下文排查,不要反覆強制結束所有 Helper。
Chrome 各行程在做什麼
瀏覽器行程負責頁面外圍:視窗、分頁、選單、網址列,以及子行程的生命週期。大多數網站 JavaScript 不在這裡執行。
算繪行程處理網頁文件。Chromium 明講一個算繪行程可以包含一個或多個 frame,分頁也不保證對應單一算繪行程。桌面版 Chrome 的 網站隔離 把網站當安全邊界,跨網站 iframe 可能再要一個算繪行程。多出來的行程是安全代價,也會多佔記憶體,不能當成壞掉的證據。
Chrome 另外保留獨立的 GPU 行程。在 Chromium 的 GPU 加速合成設計 裡,一個 GPU 行程通常服務整個瀏覽器實例。算繪行程把繪圖指令送給它。GPU 工作突然升高,要問的是合成或硬體加速,不是分頁太多。
網路與儲存服務,加上其他沙盒化公用行程,負責擷取、快取與有範圍的工作,讓被攻破的頁面碰不到整個瀏覽器。即使沒有分頁看起來忙碌,它們仍可能以 Helper 出現在活動監視器。
延伸功能沒有固定的行程名稱。Chrome 工作管理員可能把延伸功能列成獨立工作,同一個延伸功能也可能增加算繪行程或背景工作的負載。活動監視器仍會把其中許多工作標成 Google Chrome Helper 或 Google Chrome Helper (Renderer),只看這個名稱,無法辨認是哪個分頁或延伸功能。
先確認行程屬於這套 Chrome
結束任何東西之前,先證明這個 Helper 屬於你要檢查的那份 Chrome 安裝。Apple 的 活動監視器行程檢視 能顯示的不只是畫面名稱。
選取該行程,開啟資訊視窗,檢查 開啟的檔案和連接埠。真正的 Chrome helper 路徑應落在已安裝的 Google Chrome.app 套件裡,常見於 /Applications/Google Chrome.app。從下載項目啟動的副本、另一個 Chromium 系應用程式,或不相關路徑,要另外查。不要只因為行程標題含有「Google Chrome Helper」就刪掉二進位檔或資料夾。名稱可以複製,執行檔路徑與所屬應用程式才是較強的證據。
這一步也能避免把別的 Chromium 應用程式怪到 Chrome 頭上。許多瀏覽器與 Electron 應用程式會帶類似名稱的 helper。結束錯的行程不會讓 Chrome 降溫,還可能打斷另一個應用程式裡的工作。
用 Chrome 的對照表,搭配活動監視器的趨勢
路徑確認在 Google Chrome.app 裡之後,改看 Chrome 自己的畫面。Chrome 工作管理員 在 更多 > 更多工具 > 工作管理員。它列出分頁、子框架、延伸功能、GPU 工作與瀏覽器服務,並附資源欄。依問題對應的指標排序,能說出那列是什麼工作之後,再選取。
結束處理程序比關掉整個瀏覽器範圍更窄,但不是無害。Google 提醒該工作裡尚未儲存的內容可能會沒。草稿、填到一半的表單、進行中的上傳,都可能跟著算繪行程一起消失。先存好,再只結束已辨識的那一列。
活動監視器是全系統趨勢層。它能看出 Chrome 是否佔走 Mac 的資源、負載是否集中在一個 Helper、代價是 CPU、記憶體還是能源。它無法可靠地把 Helper 對回某個文件或延伸功能。那個內部對應在 Chrome 工作管理員。兩層一起用,不要指望任何一層回答所有問題。
如果好幾個算繪行程一起居高不下,找共同原因:同一個網站家族、注入每個頁面的同一個延伸功能,或背景仍在解碼的媒體。網站隔離會刻意複製算繪行程。有用的問題是哪個被隔離的工作還在做事。
CPU、記憶體與能源是不同訊號
Apple 把 能源影響與 12 小時電力 寫成能源量測,不是 CPU 百分比的別名。看的欄要對上抱怨的現象。
| 量測 | 回報什麼 | 什麼時候用 |
|---|---|---|
| CPU | 此刻用掉的處理器時間 | 風扇、發熱、遲滯,或某個 Helper 一直停在活動監視器前列 |
| 記憶體 | 行程佔住的 RAM | 記憶體壓力、換出,或開了很多分頁後 Chrome 持續變大 |
| 能源影響 | 相對的當下耗能 | Mac 摸起來熱,或耗電很快,但 CPU 用量看起來不算高 |
| 12 小時電力 | Mac 筆電的平均耗能 | Helper 目前用量不高,卻在過去幾小時持續耗電 |
算繪行程的 CPU 用量可能很低,卻仍占用大量記憶體,因為網站資料還留在行程裡。頁面初次算繪時短暫升高的 CPU 用量,也不代表出了問題。等頁面穩定後持續觀察同一個工作,才能分辨短暫高峰與持續負載。
改設定前先選一個主要指標。風扇很吵,從 CPU 與能源影響開始。記憶體壓力,用 Chrome 工作管理員的記憶體欄與活動監視器的記憶體面。把四個數字混成一句「Chrome 很重」,下一步就無法比較。
一次只處理一個原因
結束一個已辨識的工作
在 Chrome 工作管理員結束你已點名的分頁、子框架或延伸功能。不要從活動監視器清掉整份 Helper 清單。重新載入後同一列以同樣代價回來,原因是頁面或作用在該頁面上的東西,不是可丟棄的殘留行程。
一次停用一個延伸功能
Google 的 延伸功能控制 在 更多 > 延伸功能 > 管理延伸功能,或 chrome://extensions。關掉一個延伸功能,重新載入同樣的頁面,用同一個指標看同一段時間。延伸功能可能自成一列工作,也可能把負擔灌進仍帶著網站標題的算繪行程。指標沒動,先把那個延伸功能開回來,再測下一個。一次全關可能讓症狀消失,卻找不出原因。
用記憶體節省程式處理閒置分頁記憶體
Chrome 的 效能設定 在 設定 > 效能,以及 chrome://settings/performance。記憶體節省程式會停用未使用的分頁,回來時再重新載入。它處理的是閒置分頁記憶體,不是目前忙碌的 CPU 工作。
Google 也列出會擋住停用的情況:進行中的音訊或影片、通話、畫面分享、通知、下載、填到一半的表單、釘選分頁、已連線裝置。如果昂貴的 Helper 屬於你正在看的分頁,或仍在播放、上傳的分頁,記憶體節省程式可能正確地讓它保持作用中。
把硬體加速當受控測試
Google 把 盡可能使用硬體加速 寫成圖形相關故障的排查開關,不是一律能壓 CPU 的解法。只有 GPU 工作、影片、canvas、捲動或算繪才是症狀時再測。
先記基準,改設定,重新啟動 Chrome,重複同一份工作。關掉加速可能把繪圖從 GPU 挪到 CPU,CPU 可能升高,影片也可能較不順。量到的問題沒改善,就還原原設定。
不要為了縮短行程清單而移除 Helper 二進位檔、外掛資料夾,或 Google Chrome.app 裡的任何東西。那些 helper 實作的是 Chrome 的架構。改應用程式套件可能弄壞 Chrome 與後續更新,卻修不到真正在做事的頁面或延伸功能。
讓比較可以重做
一張尖峰截圖不夠。同樣的觀察做兩次,一次只改一個變數。
同樣的頁面、同樣的視窗、媒體停在同樣位置。刻意暫停或播放影片,避免兩次之間畫面往前走。電源狀態維持不變,包含電源轉接器與低耗電模式。關掉不相干的重負載應用程式,避免另一個編譯或匯出改掉基準。
從表裡選一個指標。看固定時段,例如最後一個頁面載入完成後兩分鐘。記下 Chrome 工作管理員的列名與 CPU 或記憶體。對應活動監視器行程前,先核對路徑。
然後改一個變數:結束該工作、停用一個延伸功能、開啟記憶體節省程式,或測試硬體加速並重新啟動。重複同一觀察時段。指標沒改善,下一次測試前先還原。沒作用的設定如果留著,仍會汙染下一個基準。
某個改動有效時,完整重新啟動 Chrome 後再做一次。有些代價會跟著算繪行程消失,同一網站再開就回來。這個結果仍說明一件事:負責的是該工作、延伸功能或負載,不是 Chrome Helper 本身的存在。
排查後仍有多個 Helper 是正常的。重要的是找出造成高負載的工作,確認調整後用量確實下降,同時保留尚未儲存的內容。