活动监视器随每台 Mac 预装,能满足基本需求。但开发者通常在认真调试的第一周就会碰壁。以下是两款工具的详细对比。
核心功能一览
| 功能 | 活动监视器 | ProcXray |
|---|---|---|
| CPU / 内存图表 | ✓ | ✓ |
| 进程列表 | ✓ | ✓ |
| 强制退出 | ✓ | ✓ |
| 进程树(父子关系) | ✗ | ✓ |
| 环境变量检查器 | ✗ | ✓ |
| 实时正则搜索 | ✗ | ✓ |
| 短命进程捕获 | ✗ | ✓ |
| 进程生命周期高亮 | ✗ | ✓ |
| Dylib(动态库)查看 | ✗ | ✓ |
| 打开的文件描述符 | ✗ | ✓ |
| 代码签名与 Entitlements | ✗ | ✓ |
| 网络端口监控 | ✗ | ✓ |
| 右键上下文操作 | 基础 | 完整 |
进程树:搞清楚谁启动了谁
活动监视器的扁平列表适合确认 Safari 是否在运行。当你需要调试构建系统、CI runner 或多进程 Node.js 应用时,它就捉襟见肘了。你会看到 20 个 node 进程,却完全不知道谁启动了谁。
ProcXray 的树状视图实时呈现完整的进程血缘链。展开父进程,所有子进程和孙进程一目了然。不需要时随时折叠,也可随时切回扁平列表。
环境变量:真正有用的调试数据
当某个进程在生产环境与本地表现不一致时,问题往往出在环境变量上。而在活动监视器里,根本没有办法检查运行中进程的环境。
ProcXray 的环境变量选项卡列出了进程继承或显式设置的每一个变量。一键将所有变量复制为 JSON,方便你在干净的 shell 中复现 bug。
正则搜索:秒级定位目标
活动监视器的搜索仅支持进程名称的子字符串过滤。如果你想找所有匹配 node.*build 或 python.*manage.py 的进程,根本无从下手。
ProcXray 的搜索在你输入的同时实时运行正则过滤,匹配范围覆盖:进程名称、命令行参数、PID 和文件路径。响应速度在毫秒以下。
短命进程捕获
编译器、链接器、shell 辅助工具和构建子进程的存活时间往往不足一秒。活动监视器刷新周期为 1–5 秒,完全看不到它们。
ProcXray 在进程启动的瞬间以绿色高亮标记,并在退出后以红色保留,供你事后查看。从”我完全不知道构建时在跑什么”,变成”每个子进程的 PID、参数和运行时间我都一清二楚”。
Dylib 与文件描述符检查
怀疑崩溃可能是库冲突导致的?ProcXray 的 Dylibs 选项卡列出进程加载的所有动态库。Connections 选项卡展示所有打开的文件描述符和网络端口。
等效的终端命令:
vmmap <PID> # 已加载的库(输出复杂)
lsof -p <PID> # 打开的文件和端口
ProcXray 以结构化、可过滤的 UI 呈现相同的数据。
代码签名与安全审计
进行安全审查或合规检查时,ProcXray 直观展示每个进程的代码签名状态、签名身份和 Entitlements 列表——无需解读晦涩的 codesign -dvvv 输出。
总结
活动监视器适合快速一瞥。一旦涉及调试、性能分析或安全审查,ProcXray 提供的数据是活动监视器根本无法给出的。
免费下载 ProcXray → — macOS Sonoma+,支持 Apple Silicon 与 Intel。