閒置喚醒
又稱:喚醒次數
簡短回答
「閒置喚醒」計算某個程序把CPU從閒置狀態喚醒的次數。頻繁喚醒會讓處理器無法休息,即使「% CPU」看起來很低,也可能縮短電池續航力。
CPU能長時間保持閒置時最省電。每當有程序設定計時器或檢查某樣東西,CPU就得醒來處理。喚醒一次的代價很小,但成千上萬次加起來就不少了。
你可以在「活動監視器」的「CPU」標籤頁中顯示「閒置喚醒」欄位。它最適合用來找出那些不停輪詢、卻沒做多少實際工作的背景App。
如何在「活動監視器」中查看「閒置喚醒」
按一下「CPU」標籤頁,然後選擇「顯示方式」>「直欄」,確認已勾選「閒置喚醒」。按一下該欄位標題即可依它排序。
喚醒次數多的原因
常見的原因有:用短間隔計時器輪詢更新的App、在看不見的視窗裡持續執行的動畫,以及一直保持連線的同步或聊天App。開了很多標籤頁的瀏覽器也會產生大量喚醒。
對於隱藏的App,macOS會用App小睡等功能減少喚醒,放慢你沒在用的App的計時器。
為什麼「% CPU」很低,喚醒仍然會耗電
當所有核心都閒置時,晶片不只可以讓核心斷電,還能讓處理器的共用部分斷電。Apple的powermetrics手冊說明,一個計時器或中斷結束這種深度閒置狀態所耗的能量,比CPU原本就醒著時做同樣的工作還多。
所以一個App可能幾乎不使用CPU時間,卻仍然讓Mac無法休息。每次喚醒都很短,所以在「% CPU」中幾乎看不出來,但晶片始終無法長時間停留在最低耗電狀態。
macOS會把差不多同時到期的計時器集中起來,讓CPU醒來一次就處理好幾個,藉此減少喚醒。Apple稱之為計時器合併。對於隱藏的App,App小睡則更進一步,減少它們計時器觸發的次數。
如何找出最常喚醒Mac的App
- 結束或隱藏你正在使用的App,讓列表顯示的是背景行為。
- 在活動監視器中按一下「CPU」標籤頁,依「閒置喚醒」排序。
- 觀察一分鐘。記下那些你沒在使用、卻一直排在前面的App。
- 按一下「能源」標籤頁,看看同樣這些App在「能耗影響」上是否也排得很高。
- 如果要在「終端機」中查看,請執行
top -o idlew -stats pid,command,cpu,idlew。IDLEW欄是累計總數,所以要看哪些數值增加得最快。按q離開。 - 想看更詳細的取樣,請執行
sudo powermetrics --samplers tasks --order wakeups -n 1。它會列出每個程序的計時器喚醒和中斷喚醒,並依讓晶片脫離閒置狀態的喚醒次數排序。
正常與值得擔心的閒置喚醒
沒有哪個數字一定算太高,因為次數取決於App本身,以及它已經執行了多久。重要的是模式。
- 正常:kernel_task和WindowServer這類系統程序排在前面。它們負責處理硬體事件和繪製畫面,所以本來就會頻繁喚醒CPU。
- 正常:你正在使用,而且正在播放音訊、進行通話或保持即時連線的App。
- 值得一看:一個你沒在使用的隱藏App,次數卻一直快速攀升,尤其是它在「App小睡」欄中還顯示「否」。
- 值得一看:經常重新整理的小型選單列工具,例如顯示秒數的時鐘或即時統計資料。很多這類工具都能在設定中選擇較長的更新間隔。
喚醒次數過多的App該怎麼處理
在App的設定中找找重新整理或同步的間隔,把它調長。關閉不需要的即時預覽或動畫。更新App;如果問題仍在,就告訴開發者:Apple要求開發者盡量少用計時器,所以閒置的App不斷喚醒,是值得回報的錯誤。
大家常問的問題
「活動監視器」中的「閒置喚醒」是什麼意思?
它是某個程序把CPU從閒置狀態喚醒的次數。次數多的App,即使「% CPU」很低,也可能耗電。
「閒置喚醒」次數多是壞事嗎?
不一定。播放音訊或保持網路連線的App需要經常醒來。最該留意的是那些你沒在用、卻依然排在前面的App。
如何減少閒置喚醒?
結束不用的App,關掉不需要的瀏覽器標籤頁,並讓App保持最新版本。隱藏或縮到最小App,也能讓App小睡放慢它們。
為什麼kernel_task的閒置喚醒這麼多?
kernel_task就是macOS核心,它負責處理來自鍵盤、觸控式軌跡板、網路和儲存裝置等硬體的中斷。它的次數高是意料中的事,不需要處理。
Mac接上電源時,閒置喚醒還重要嗎?
沒那麼重要。喚醒主要消耗的是電池續航力。接上電源時,它們只會增加一點能源用量和熱量,很少是Mac變慢的原因。
閒置喚醒多少才算好?
沒有固定的標準值。請把各個App互相比較,找出那些你沒在使用、次數卻仍快速攀升的App。
相關詞條
逐步教學:是什麼在消耗Mac的電池。
想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。