Mac程序檢查器,就內建在你的活動監視工具裡。

按一下任何程序,它的面板就會顯示:它所屬的App、程式碼簽署和團隊ID、它的授權、父程序和Launch Agent、完整的指令列,以及它自啟動以來用掉的CPU時間、記憶體、打開的檔案和監聽連接埠。App還會加上版本、套件ID和Info.plist。可以儲存為CSV,或在「終端機」中用vitals process取得同樣的內容。

按一下左側的程序,右側就會打開它的面板。
Google Chrome
96個程序
記憶體
21.19 GB
CPU
14.2%
功率
4.1 W
GPU
3%
磁碟
0 kB/s
網路
1.2 MB/s
詳細資訊
版本
156.0.8078.74
套件ID
com.google.Chrome
架構
通用 · x86_64 · arm64
簽署
Google LLC · 團隊ID EQHXZ8M8AV
保護
強化執行環境未沙箱化
使用者
me
已執行
6h 14m
位置
/Applications/Google Chrome.app
Info.plist44
程序
顯示全部96項
最近結束2
標籤頁程序48402執行了 1h 12m · 3分鐘前結束 318 MB
Google Chrome Helper (Plugin)48395執行了 26m 4s · 8分鐘前結束 71 MB
終端機
49個程序
記憶體
3.81 GB
CPU
13.2%
功率
1.8 W
GPU
0%
磁碟
2.1 MB/s
網路
0 kB/s
詳細資訊
版本
2.15
套件ID
com.apple.Terminal
架構
Apple 晶片 · arm64e
簽署
Apple
保護
無強化執行環境未沙箱化
使用者
me
已執行
2d 6h
位置
/System/Applications/Utilities/Terminal.app
Info.plist39
程序
最近結束2
node60498執行了 2m 8s · 5分鐘前結束 612 MB
git60502執行了 0.4s · 4分鐘前結束 9 MB
Docker
9個程序
記憶體
1.74 GB
CPU
2.4%
功率
0.9 W
GPU
0%
磁碟
340 kB/s
網路
0 kB/s
詳細資訊
版本
4.88.1
套件ID
com.docker.docker
架構
Apple 晶片 · arm64
簽署
Docker Inc · 團隊ID 9BNSXJN65R
保護
強化執行環境未沙箱化
使用者
me
已執行
3d 1h
位置
/Applications/Docker.app
Info.plist31
程序
最近結束2
com.docker.build20335執行了 41s · 2分鐘前結束 58 MB
com.docker.build20329執行了 1m 3s · 9分鐘前結束 61 MB
Google Chrome
Google Chrome · PID 48190
記憶體
412 MB
CPU
1.1%
磁碟
0 kB/s
身分
程序ID
48190
父程序
launchd (1)
已執行
6h 14m
App
套件ID
com.google.Chrome
版本
156.0.8078.74
架構
通用 · x86_64 · arm64
安全性
簽署
Google LLC · 團隊ID EQHXZ8M8AV
強化執行環境
是
沙箱
否
授權
1
資源使用情況
CPU時間
42m 10s 使用者 32m 54s · 78%系統 9m 16s · 22%
記憶體
412 MB · 峰值 672 MB 的 61%
執行緒
64
打開的檔案
318
子程序
標籤頁程序482111.92 GB
Google Chrome Helper (GPU)48193842 MB
環境31
Google Chrome Helper (Renderer)
標籤頁程序
記憶體
1.92 GB
CPU
4.2%
磁碟
12 kB/s
身分
程序ID
48211
父程序
Google Chrome (48190)
啟動者
Google Chrome (48190)
已執行
6h 12m
App
版本
156.0.8078.74
架構
通用 · x86_64 · arm64
參數
--type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
安全性
簽署
Google LLC · 團隊ID EQHXZ8M8AV
強化執行環境
是
沙箱
否
授權
1
資源使用情況
CPU時間
12m 40s 使用者 10m 23s · 82%系統 2m 17s · 18%
記憶體
1.92 GB · 峰值 2.18 GB 的 88%
執行緒
23
打開的檔案
96
環境31
Google Chrome Helper (GPU)
Google Chrome · PID 48193
記憶體
842 MB
CPU
2.8%
磁碟
0 kB/s
身分
程序ID
48193
父程序
Google Chrome (48190)
啟動者
Google Chrome (48190)
已執行
6h 14m
App
版本
156.0.8078.74
架構
通用 · x86_64 · arm64
參數
--type=gpu-process --lang=en-US --gpu-preferences=UAAAAAAAAADgAAAEAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA
安全性
簽署
Google LLC · 團隊ID EQHXZ8M8AV
強化執行環境
是
沙箱
否
授權
1
資源使用情況
CPU時間
18m 2s 使用者 12m 37s · 70%系統 5m 25s · 30%
GPU
3%
記憶體
842 MB · 峰值 904 MB 的 93%
執行緒
31
打開的檔案
142
環境31
Google Chrome Helper (Renderer)
標籤頁程序
記憶體
1.31 GB
CPU
0.3%
磁碟
0 kB/s
身分
程序ID
48377
父程序
Google Chrome (48190)
啟動者
Google Chrome (48190)
已執行
3h 40m
App
版本
156.0.8078.74
架構
通用 · x86_64 · arm64
參數
--type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
安全性
簽署
Google LLC · 團隊ID EQHXZ8M8AV
強化執行環境
是
沙箱
否
授權
1
資源使用情況
CPU時間
4m 51s 使用者 4m 2s · 83%系統 49s · 17%
記憶體
1.31 GB · 峰值 1.36 GB 的 96%
執行緒
21
打開的檔案
88
環境31
終端機
終端機 · PID 581
記憶體
148 MB
CPU
0.2%
磁碟
0 kB/s
身分
程序ID
581
父程序
launchd (1)
已執行
2d 6h
App
套件ID
com.apple.Terminal
版本
2.15
架構
Apple 晶片 · arm64e
安全性
簽署
Apple
強化執行環境
否
沙箱
否
授權
6
資源使用情況
CPU時間
3m 12s 使用者 2m 2s · 64%系統 1m 10s · 36%
記憶體
148 MB · 峰值 208 MB 的 71%
執行緒
12
打開的檔案
58
子程序
zsh6012012 MB
zsh6060111 MB
環境24
zsh
終端機 · PID 60120
記憶體
12 MB
CPU
0.0%
磁碟
0 kB/s
身分
程序ID
60120
父程序
login (60118)
啟動者
終端機 (581)
已執行
2d 5h
可執行檔
架構
Apple 晶片 · arm64e
參數
-zsh
安全性
簽署
Apple
強化執行環境
否
沙箱
否
資源使用情況
CPU時間
1.2s 使用者 0.7s · 58%系統 0.5s · 42%
記憶體
12 MB · 峰值 20 MB 的 60%
執行緒
1
打開的檔案
8
子程序
node60412486 MB
node60533391 MB
環境42
node
終端機 · PID 60412
記憶體
486 MB
CPU
0.6%
磁碟
0 kB/s
身分
程序ID
60412
父程序
zsh (60120)
啟動者
終端機 (581)
已執行
2d 4h
可執行檔
架構
Apple 晶片 · arm64
參數
node_modules/.bin/next dev --port 3000
安全性
簽署
Node.js Foundation · 團隊ID HX7739G8FX
強化執行環境
是
沙箱
否
資源使用情況
CPU時間
1h 52m 使用者 1h 42m · 91%系統 10m 5s · 9%
記憶體
486 MB · 峰值 797 MB 的 61%
執行緒
19
打開的檔案
203
網路
監聽連接埠
3000
子程序
next-router-worker60418212 MB
next-render-worker60421180 MB
環境48
node
終端機 · PID 60533
記憶體
391 MB
CPU
12.4%
磁碟
2.1 MB/s
身分
程序ID
60533
父程序
zsh (60120)
啟動者
終端機 (581)
已執行
14s
可執行檔
架構
Apple 晶片 · arm64
參數
node_modules/.bin/vitest run --coverage
安全性
簽署
Node.js Foundation · 團隊ID HX7739G8FX
強化執行環境
是
沙箱
否
資源使用情況
CPU時間
9.1s 使用者 8.0s · 88%系統 1.1s · 12%
記憶體
391 MB · 峰值 391 MB 的 100%
執行緒
27
打開的檔案
412
子程序
node6054096 MB
node6054194 MB
環境48
Docker
Docker · PID 20288
記憶體
112 MB
CPU
0.1%
磁碟
0 kB/s
身分
程序ID
20288
父程序
launchd (1)
已執行
3d 1h
App
套件ID
com.docker.docker
版本
4.88.1
架構
Apple 晶片 · arm64
安全性
簽署
Docker Inc · 團隊ID 9BNSXJN65R
強化執行環境
是
沙箱
否
授權
7
資源使用情況
CPU時間
6m 4s 使用者 4m 31s · 74%系統 1m 33s · 26%
記憶體
112 MB · 峰值 233 MB 的 48%
執行緒
22
打開的檔案
74
子程序
com.docker.backend203111.57 GB
com.docker.build2034064 MB
環境29
com.docker.backend
Docker · PID 20311
記憶體
1.57 GB
CPU
2.1%
磁碟
340 kB/s
身分
程序ID
20311
父程序
Docker (20288)
啟動者
Docker (20288)
已執行
3d 1h
App
版本
4.88.1
架構
Apple 晶片 · arm64
參數
-watchdog -max-restarts 5
安全性
簽署
Docker Inc · 團隊ID 9BNSXJN65R
強化執行環境
是
沙箱
否
授權
7
資源使用情況
CPU時間
3h 8m 使用者 2h 0m · 64%系統 1h 8m · 36%
記憶體
1.57 GB · 峰值 2.04 GB 的 77%
執行緒
48
打開的檔案
241
子程序
com.docker.build2034064 MB
環境29
com.docker.build
Docker · PID 20340
記憶體
64 MB
CPU
0.2%
磁碟
0 kB/s
身分
程序ID
20340
父程序
com.docker.backend (20311)
啟動者
Docker (20288)
已執行
12s
App
版本
4.88.1
架構
Apple 晶片 · arm64
安全性
簽署
Docker Inc · 團隊ID 9BNSXJN65R
強化執行環境
是
沙箱
否
授權
1
資源使用情況
CPU時間
2.0s 使用者 1.6s · 80%系統 0.4s · 20%
記憶體
64 MB · 峰值 64 MB 的 100%
執行緒
9
打開的檔案
31
子程序
buildkitd2034641 MB
環境29
com.docker.virtualization
Docker · PID 20318
記憶體
38 MB
CPU
0.4%
磁碟
0 kB/s
身分
程序ID
20318
父程序
com.docker.backend (20311)
啟動者
Docker (20288)
已執行
3d 1h
App
版本
4.88.1
架構
Apple 晶片 · arm64
安全性
簽署
Docker Inc · 團隊ID 9BNSXJN65R
強化執行環境
是
沙箱
否
授權
3
資源使用情況
CPU時間
1h 4m 使用者 31m 12s · 49%系統 32m 48s · 51%
記憶體
38 MB · 峰值 52 MB 的 73%
執行緒
14
打開的檔案
46
環境29

這些數字是模擬的:網頁讀不到你的Mac,也不應該讀到。

01身分

程序背後的App、它的程式碼簽署和授權。

面板先顯示程序所屬的App和它是哪種程序:瀏覽器標籤頁、擴充功能、GPU程序、開發伺服器。然後是它的程式碼簽署,包括開發者名稱和團隊ID、它是否使用強化執行環境和沙箱、它擁有的每項授權,以及它是為Apple 晶片、Intel還是兩者建置的、是否正透過Rosetta執行。

  • 它所屬的App,以及它是標籤頁、擴充功能還是輔助程式
  • 程式碼簽署,帶團隊ID;Apple自己的顯示Apple
  • 強化執行環境、沙箱,以及每一項授權
  • 為Apple 晶片、Intel或兩者建置,以及是否由Rosetta執行
Google Chrome Helper (Renderer)
標籤頁程序
安全性
簽署Google LLC · 團隊ID EQHXZ8M8AV 強化執行環境好 沙箱否 授權1
App
版本156.0.8078.74 架構通用 · x86_64 · arm64
程式碼簽署和團隊ID 為兩者建置,不經過Rosetta
02啟動

父程序、Launch Agent和完整的指令列。

每個程序都有父程序,Vitals會指出它,以及啟動它的App;對於背景程序,還會指出在登入時透過launchd啟動它的Launch Agent或Launch Daemon。完整的指令列能讓一個光禿禿的node或python現出原形:原來是你熟悉的某個專案的開發伺服器。下方是它啟動的子程序,按一下就能看到。

  • 父程序和啟動它的App,各是一個連結
  • 在登入時啟動它的Launch Agent或Launch Daemon
  • 完整的指令列,以及打開後可見的環境
  • 子程序,各有自己的數據
node
終端機 · PID 60412
父程序zsh (60120) 啟動者終端機 (581) 參數node_modules/.bin/next dev --port 3000
子程序
next-router-worker60418212 MB
next-render-worker60421180 MB
esbuild6043048 MB
父程序、啟動者和指令列 它底下的子程序
03用量

自啟動以來的CPU時間、記憶體峰值、打開的檔案和監聽連接埠。

百分比說的是這一秒。面板涵蓋程序的整個生命週期:自啟動以來的CPU時間,分為它自己的工作和系統核心替它做的工作;目前記憶體與它曾占用的最高值之比;執行緒、打開的檔案、分頁移入量、讀取和寫入的Byte數、它正在監聽的連接埠,面板打開時還有CPU和記憶體的即時圖表。

  • CPU時間,分為使用者和系統
  • 目前記憶體,占歷史峰值的比例
  • 執行緒、打開的檔案、分頁移入量、磁碟讀取和寫入
  • 監聽連接埠,以及面板打開期間的即時圖表
com.docker.backend
Docker · PID 20311
資源使用情況
CPU時間 3h 8m使用者 2h 0m · 64%系統 1h 8m · 36% 記憶體 1.57 GB · 峰值 2.04 GB 的 77% 執行緒48 打開的檔案241 讀取的Byte數4.2 GB 寫入的Byte數1.1 GB
自打開此面板起。CPU 2.1% · 1.57 GB
自啟動以來,而不只是這一秒 邊看邊畫出圖表
04App

App的版本、套件ID和Info.plist,以及它底下的每個程序。

打開一個App,它的「詳細資訊」卡片會給出版本、套件ID、位置、程式碼簽署和由什麼啟動,按一下就能看到完整的Info.plist。它的程序列在下方,每個按一下就能看到詳細資訊。剛啟動的程序帶有「新」標記,最近十分鐘內結束的程序仍留在列表中,所以一次當機或來了又走的輔助程式不會遺失。

  • 版本、套件ID和完整的Info.plist
  • 每個程序,剛啟動的帶有「新」標記
  • 「最近結束」:最近十分鐘內關閉了什麼
  • 選擇表格的直欄,並用/a regex/過濾
Docker
詳細資訊
版本4.88.1 套件IDcom.docker.docker 簽署Docker Inc · 團隊ID 9BNSXJN65R Info.plist31
程序按一下程序以查看詳細資訊
Docker20288112 MB
com.docker.backend203111.57 GB
com.docker.build20340新功能64 MB
最近結束2
Info.plist,按一下就看到 最近十分鐘內結束了什麼
05輸出

將程序輸出為CSV,或在「終端機」中執行vitals process。

每個面板都有輸出選單:「拷貝為文字」用於訊息或錯誤回報,「儲存為CSV」用於試算表,都包含Info.plist和授權。在「終端機」中,vitals process依名稱或PID傳回任何程序的同樣內容,AI助理則透過MCP的process_details工具取得。

  • 拷貝為文字,或儲存為CSV
  • vitals process node,或依PID,加--json供腳本使用
  • --env加上環境,--plist加上Info.plist
  • 透過MCP給Claude、Codex和Cursor的process_details工具
拷貝為文字
儲存為 CSV…
~ vitals process node
node pid 60412 Terminal
~/.nvm/versions/node/v24.15.0/bin/node
user me · since 9:53 AM (2d 4h) · parent zsh (60120)
Apple silicon · signed by Node.js Foundation (HX7739G8FX)
arguments node_modules/.bin/next dev --port 3000
● CPU0.6% · 1h 52m in all · user 91%, system 9%
● Memory486 MB · peak 797 MB · real 210 MB
● Ports3000
拷貝為文字,或儲存為CSV 透過MCP給助理同樣的內容
為什麼重要

程序檢查器:之前與之後

活動監視器的「檢閱」視窗給出程序的父程序、使用者、CPU時間、記憶體、打開的檔案和連接埠,以及取樣。它不會說誰簽署、一個光禿禿的node屬於哪個App、登入時由什麼啟動,或完整的指令列是什麼。要查這些,你得打開「終端機」:codesign查簽署,ps查引數,launchctl查由什麼啟動,lsof查連接埠,plutil查Info.plist。

問題通常比這簡單。這是什麼?一個叫Helper的程序,一個沒人記得啟動過的python,一個名字像com.apple.something、用掉半個核心的東西。它是我安裝的App的一部分嗎,是Apple的嗎,它應該在執行嗎?

Vitals在一個面板裡回答:程序所屬的App和它是哪種程序,它的程式碼簽署和授權,它的父程序和指令列,它啟動的程序,以及它自啟動以來用掉的CPU時間、記憶體、檔案和連接埠,版本、Info.plist和授權摺疊在下方。同樣的答案也以CSV、「終端機」中的vitals process,以及AI助理的工具形式提供。

使用方式

在Vitals中的位置

標籤頁、選單列項目和設定,依你會用到的順序排列。

  1. 01

    按一下任何程序打開它的面板

    在任何標籤頁中,按一下一個App,再按一下它的一個程序,或在App的面板中將游標移到某個程序上並按一下ⓘ。面板就會打開到它。⌘F依名稱尋找程序,/a pattern/用規則運算式搜尋。

  2. 02

    逐一閱讀面板的各個部分

    「身分」,然後是「App」或「可執行檔」、「安全性」、「資源使用情況」、「磁碟」、「網路」和「子程序」。Info.plist、「授權」和「環境」摺疊起來,直到你打開它們。父程序、啟動者和每個子程序都是連結:按一下就跳過去。

  3. 03

    選擇程序表格的直欄

    工具列中的「直欄」按鈕新增或移除標籤頁的直欄:PID、使用者、路徑、版本、啟動時間、閒置喚醒和各項讀數。每個標籤頁保留自己的選擇。

  4. 04

    拷貝、儲存為CSV,或在「終端機」中查詢

    面板標題中的分享按鈕提供「拷貝為文字」和「儲存為CSV」。在「終端機」中,vitals process <name>或vitals process <pid>,加--json、--env或--plist。透過MCP,則是process_details工具。

比較

程序檢查器:活動監視器與Vitals

完整比較會逐項列出。以下是和程序檢查器有關的幾項。

活動監視器 Vitals
一個程序的詳細資訊
活動監視器「檢閱」視窗:父程序、使用者、CPU時間、記憶體、打開的檔案和連接埠
Vitals這些,再加上它的App、簽署、授權、指令列、由什麼啟動、歷史峰值和子程序
程式碼簽署
活動監視器不顯示;要在「終端機」中用codesign
Vitals簽署者、團隊ID、強化執行環境、沙箱和授權
父程序和指令列
活動監視器父程序的PID
Vitals父程序、啟動它的App、launchd工作和指令列
App的版本和Info.plist
活動監視器不顯示
Vitals版本、套件ID和完整的Info.plist
已結束的程序
活動監視器從列表中消失
Vitals「最近結束」,保留十分鐘
輸出
活動監視器取樣或Spindump,以文字形式
Vitals「拷貝為文字」、「儲存為CSV」、vitals process --json
取樣和spindump
活動監視器好
Vitals否

背後的詞彙

這些數字代表什麼,摘自活動監視器詞彙表。

問題

購買前,大家對程序檢查器最常問的問題。

如何打開程序檢查器?

在任何列表中按一下一個程序,它的面板就會打開。在App的面板中,每個程序是一列:按一下它,或按一下游標移過去時出現在它旁邊的ⓘ。按⌘F依名稱尋找程序,輸入/a pattern/可用規則運算式搜尋。

程序的程式碼簽署能告訴我什麼?

誰建置了這段程式碼。帶團隊ID的名稱是Apple已識別的開發者,例如Google LLC或Docker Inc。Apple自己的程序顯示Apple。「已簽署,無憑證」是在Mac上建置、沒有特定簽署者的工具,這對Homebrew和你自己編譯的東西來說很正常。「未簽署」表示完全沒有簽署。下方是:它是否使用強化執行環境、是否在沙箱中執行,以及它被授予的每一項授權。

Vitals能告訴我某個程序是否安全,或者是不是惡意軟體嗎?

它給你判斷所需的事實:程式碼簽署、父程序、它在哪裡,以及它在做什麼。有團隊ID的知名開發者、沙箱,以及你認得的父程序,就是你希望看到的。沒有簽署、路徑在隱藏的檔案夾裡、還有一個你從未安裝過的Launch Agent,就值得仔細看看。Vitals不會掃描惡意軟體;它告訴你那裡有什麼。

什麼是CPU時間,為什麼分為使用者和系統?

CPU時間是程序自啟動以來讓一個CPU核心保持忙碌的時間,累計計算:一個程序以單核50%執行兩小時,就用了一小時。使用者時間是程序自己的工作;系統時間是系統核心替它做的工作,例如讀取檔案或連上網路。一個做得不多卻系統時間占比很高的程序,通常表示它在忙著向macOS要東西。

為什麼有些程序顯示的詳細資訊比其他程序少?

macOS只向程序所屬的使用者顯示它的指令列、環境和累計總量。屬於macOS或其他帳號的程序會把這些留給自己;它的身分、簽署和數據仍會顯示,數據透過Vitals的選用輔助程式取得。在「設定」→「一般」中開啟「完整系統指標」即可取得。

它會顯示WindowServer和kernel_task這類macOS程序嗎?

會。它們的App是macOS,簽署是Apple的,父程序是launchd。開啟輔助程式後,它們的CPU和記憶體也會顯示,面板的圖表在打開期間持續執行。

我能看到程序的環境變數嗎?

能,在面板末尾的「環境」部分,摺疊起來直到你打開它,也能在「終端機」中用vitals process --env查看。它們絕不會傳給AI助理,因為環境裡常常有金鑰。

程序結束後,Vitals會保留它多久?

十分鐘,在App的面板中,帶有它的名稱、啟動和結束時間,以及它占用的記憶體。所以當機的輔助程式,或你不在時完成的建置,仍然看得到。

我能在「終端機」中或從AI助理取得程序的詳細資訊嗎?

有。vitals process node或vitals process 60412給出同樣的詳細資訊,以文字顯示,或加--json供腳本使用;--env加上環境,--plist加上App的Info.plist。Claude、Codex或Cursor這類助理透過Vitals MCP伺服器的process_details工具取得,需要時也包括Info.plist。

它能為程序取樣或產生Spindump嗎?

不能。那是活動監視器的功能,Vitals不照搬。Vitals回答的是程序是什麼,附上它的程式碼簽署、父程序和資源用量;要看停止回應的App的堆疊追蹤,請打開活動監視器並按「取樣」。

繼續閱讀

用到它的指南,以及Vitals和大家為此購買的App比起來如何。

Vitals的更多功能

所有功能

首發價期間,終身版只要$15

此價格剩餘50份。 之後為$39,或以$9購買一年更新。一次付清,14天內可退款。

購買Vitals $15