指南/哪個App在使用我的CPU或記憶體

如何逐一查看Mac上各App的CPU和記憶體用量

Atta 🐬

Vitals創辦人

發佈於

簡短回答

打開活動監視器,按一下「CPU」並依「% CPU」排序,或按一下「記憶體」並依「記憶體」排序。排在前面的就是此刻用得最多的。選擇「顯示方式」→「所有程序(依階層排列)」,就能看到輔助程序排在啟動它們的App底下。判斷記憶體要看「記憶體壓力」圖表,而不是「已使用記憶體」:綠色表示Mac的記憶體夠用。Vitals是一款Mac系統監控工具,每個App只占一行並已計入輔助程式,還能顯示過去幾小時、最遠到一年前哪些App用得最多。

如何查看哪個App在使用CPU或記憶體

  1. 01 按下⌘空白鍵,輸入「活動監視器」,然後按下Return。
  2. 02 按一下「CPU」,然後按一下「% CPU」欄標題,直到最高的數值排在最上面。
  3. 03 按一下「記憶體」,然後以同樣方式按一下「記憶體」欄標題。
  4. 04 選擇「顯示方式」→「所有程序(依階層排列)」。輔助程序會移到啟動它們的App底下,所以瀏覽器的標籤頁會排在瀏覽器底下。
  5. 05 查看「記憶體」標籤頁底部的「記憶體壓力」圖表。綠色表示Mac的記憶體夠用,不管「已使用記憶體」看起來有多滿。
  6. 06 若想讓量表一直留在螢幕上,選擇「視窗」→「CPU使用量」。若想查看過去幾分鐘每個核心的情況,選擇「視窗」→「CPU歷史記錄」。

若要結束忙碌的App,選取它並按一下工具列中的停止按鈕(帶×的八角形),然後按「結束」。只有App沒有回應時才用「強制結束」。別動kernel_task和WindowServer這類系統程序:它們忙,是因為有別的東西在忙。

活動監視器很會回答一個問題:這一秒是什麼在忙。對於通常接著出現的問題,它就沒那麼清楚了。這個程序屬於哪個App?記憶體數字高是問題嗎?一小時前風扇轉起來時,是什麼在使用CPU?下表說明哪個數字回答哪個問題,表後的各節則解釋最讓人困惑的數字。

哪個數字回答哪個問題

問題查看位置看什麼
此刻哪個App在使用CPU? 活動監視器→「CPU」 「% CPU」,由高到低排序。100%等於一個核心全速運作
整台Mac有多忙? 活動監視器→「CPU」底部 「系統」、「使用者」和「閒置」,三者加起來是100%
哪個App使用最多記憶體? 活動監視器→「記憶體」 「記憶體」,由高到低排序,並搭配「顯示方式」→「所有程序(依階層排列)」
Mac的記憶體不足嗎? 活動監視器→「記憶體」底部 「記憶體壓力」:綠色沒問題、黃色偏緊、紅色不足
Mac是否在把磁碟當記憶體用? 活動監視器→「記憶體」底部 「使用的交換檔」,以及它是否持續增加
一小時前是什麼在忙? 活動監視器→「能源」 「12小時耗電量」,唯一帶有歷史資料的欄

「% CPU」為什麼會超過100%

「% CPU」欄是相對於一個核心的比例,每個核心都算100%。一個App把四個核心用滿,就會顯示400%;在有十個核心的Mac上,這一欄加起來最多可達1,000%。列表下方的「系統」、「使用者」和「閒置」則是相對於整台Mac的比例,所以它們加起來永遠是100%,這一欄則不然。

在Apple晶片上,各核心並不相同。節能核心以很少的電力處理背景工作,所以在節能核心上顯示100%的程序,實際占用整台Mac的程度遠比數字看起來少。選擇「視窗」→「CPU歷史記錄」可以看到哪些核心在忙:節能核心排在前面。

為什麼一個App會顯示成幾十個程序

瀏覽器和以網頁技術打造的App會把工作分給多個輔助程序:每個標籤頁或網站一個、圖形一個、網路一個、每個延伸功能一個。Chrome會將它們顯示為Google Chrome Helper和Google Chrome Helper (Renderer),Safari則以網站的位址顯示它的標籤頁。一個App可能占30或40行,每一行單看都不大。關於瀏覽器,請參閱Chrome占用太多記憶體。

「顯示方式」→「所有程序(依階層排列)」會把每個輔助程序放在啟動它的App底下,你就知道它屬於誰。活動監視器不會把它們加總,而你自己把「記憶體」欄加起來會算多,因為程序之間共享的記憶體在每個程序中都算了一次。把總和當作粗略的上限就好。

記憶體用量高什麼時候是問題,什麼時候不是

「已使用記憶體」接近「實體記憶體」的Mac是正常的。macOS會把最近用過的檔案以已快取的檔案形式留在記憶體中,並在動用磁碟之前先壓縮記憶體。沒用到的記憶體就是浪費掉的記憶體,所以長條滿了表示macOS正在使用你花錢買的東西。

能判斷Mac記憶體是否不足的數字是記憶體壓力。綠色表示一切都放得下。黃色表示macOS正靠壓縮和交換檔來應付,在Apple晶片上暫時這樣沒問題。紅色表示它應付不來,App會變慢或停止回應。使用的交換檔一整天不斷增加,說明的也是同一件事。在「終端機」中,memory_pressure的最後一行會列出整台Mac可用記憶體的比例。

  • 平常工作時記憶體壓力就變黃或變紅:這台Mac需要同時少開幾個App,或下次買記憶體更大的。Apple晶片Mac的記憶體無法事後加裝。請參閱如何釋放記憶體。
  • 結束造成問題的App後,記憶體壓力仍是紅色且維持不變:重新開機。
  • 某個App的「記憶體」數字一直上升,而你並沒有更常使用它:它很可能有記憶體洩漏。結束後重新打開,並更新它。

你會在前面看到的系統程序

有些最忙的行屬於macOS本身。它們通常是在幫別的東西做事,所以該問的是:是什麼讓它們忙起來的。

  • kernel_task:CPU用量高通常表示Mac太熱,macOS讓處理器保持忙碌,好讓它少一些發熱的時間。請參閱Mac的風扇為什麼會變吵。
  • WindowServer:負責繪製螢幕上的一切。App不停重繪或連接了多台顯示器時,它會很忙。
  • mds_stores和mdworker:Spotlight製作索引,在macOS更新或大量拷貝後會很繁重。
  • photoanalysisd和mediaanalysisd:「照片」正在分析你的圖庫。它們會自行完成。
  • launchd:啟動其他所有程序。它很忙時,表示有某個登入項目或背景工作不斷重新啟動。

如何在「終端機」中查看CPU和記憶體

「終端機」不用打開視窗就能給出同樣的數字,透過SSH或在指令碼中都很方便。

  1. 執行top -o cpu可查看依CPU排序的即時列表,執行top -o mem則依記憶體排序。按q結束。
  2. 執行ps -Ao pid,pcpu,rss,comm -r | head -11可查看此刻CPU用量最高的十個程序。用-m取代-r即可依記憶體排序;rss欄的單位是KB。
  3. 執行memory_pressure可查看「記憶體壓力」圖表背後的記憶體統計資料。最後一行列出可用記憶體的比例。

真正有用的做法

大多數變慢的狀況只有一個原因,解決方法是把它找出來,而不是籠統地釋放記憶體。

  • 結束或更新列表最上方的App。如果是瀏覽器,關閉忙碌的標籤頁,或關閉背後的延伸功能。
  • macOS更新後,讓Spotlight和「照片」在接上電源的情況下花幾個小時完成工作。
  • 別用記憶體清理App,也別用purge指令。它們清空的檔案快取macOS會馬上重建,在重建完成前Mac反而更慢。如果Mac是因為其他原因變慢,請參閱Mac為什麼這麼慢。
  • 如果結束造成問題的App後記憶體壓力仍是紅色,或某個程序卡住、「強制結束」也結束不了,就重新開機。

Vitals多了什麼

Vitals列出的是App而不是程序,並記住每個App用了多少。

  • 每個App一行,所有輔助程式都已計入:約60個App,而不是約1,000個程序
  • 按一下瀏覽器,就能看到它的CPU和記憶體依標籤頁、延伸功能、圖形和瀏覽器本身拆分
  • 每個App最長一年的CPU和記憶體資料,從過去1小時到過去1年都有排名
  • 背景App讓CPU一直忙碌、App記憶體不斷增加,或Mac記憶體不足時,都會傳送通知

小提醒

  • CPU可以像活動監視器一樣依核心顯示,也可以顯示為整台Mac的比例,在「設定」→「一般」→「單位」中設定。
  • root和系統程序(例如kernel_task和WindowServer)在開啟選用的輔助程式時才會測量。
  • Vitals不會為程序取樣,也不會產生spindump。活動監視器仍然可以。
購買Vitals $15 一年更新$9,或在首發期間以$15終身使用,之後為$39。一次付清,14天內可退款。

大家常問的問題

如何查看Mac的CPU用量?

打開活動監視器,按一下「CPU」標籤頁並依「% CPU」排序。排在前面的就是用得最多的。底部的「系統」、「使用者」和「閒置」數字顯示整台Mac有多忙。若要在「終端機」中即時查看,請執行top -o cpu。

如何查看每個App使用多少記憶體?

打開活動監視器,按一下「記憶體」並依「記憶體」欄排序。選擇「顯示方式」→「所有程序(依階層排列)」,讓App的輔助程序排在它底下。活動監視器不會加總它們;Vitals會。

Mac什麼都沒開,為什麼還用掉這麼多記憶體?

macOS會把最近用過的檔案以「已快取的檔案」形式留在記憶體中,並為自己保留一部分作為「系統核心記憶體」。只要有App需要,這些記憶體就會馬上交出來。看看「記憶體壓力」:如果是綠色,就沒有任何問題。

Mac的CPU用量多少算正常?

閒置時,「CPU」標籤頁底部的「閒置」通常在90%以上,App和背景工作執行時會短暫衝高。某個App在你沒使用它時一直排在前面,就值得看一看。

記憶體壓力變黃色很糟嗎?

本身並不要緊。它表示macOS正靠壓縮記憶體和使用交換檔來應付,而Apple晶片很擅長這一點。如果每天平常工作時都是黃色,或變成紅色,表示以你執行的東西來說,記憶體不夠用。

有沒有更簡單的方法,依App查看Mac的CPU和記憶體?

Vitals每個App只占一行並已計入輔助程序,所以瀏覽器或Slack的CPU和記憶體各只有一個數字,並會為每個App保留最長一年的這兩項資料。

詞彙表中的相關條目

更多指南