活动监视器不直接标记内存泄漏,但可通过观察进程内存持续上升、内存压力图长期黄/红、被压缩内存为0等现象识别;需结合时间趋势追踪、终端命令验证及排除第三方内核扩展干扰。
活动监视器本身不直接标记“内存泄漏”,但它能帮你发现泄漏的典型表现:某个进程的内存占用随时间持续上升,且在闲置或关闭相关操作后也不回落。关键在于持续观察+对比判断,而不是等待系统提示。
关注内存压力图与压缩行为
打开“活动监视器” → 切换到“内存”标签页 → 看底部的“内存压力”图形:
- 如果长期处于黄色甚至红色,说明系统已频繁压缩内存或启用交换(swap),这是资源紧张的信号
- 点右下角齿轮图标 → 选择“显示内存压力”,让图形常驻窗口底部,方便随时扫一眼
- 同时注意“被压缩的内存”和“已使用的交换”数值:若某进程内存飙升但“被压缩的内存”始终为 0,说明它占着内存不放,可能正在泄漏
按时间趋势筛选可疑进程
默认排序只看瞬时值,容易漏掉缓慢增长的泄漏源。你需要主动追踪变化:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 点击顶部“内存”列标题一次,按当前占用从高到低排序
- 右键列标题 → 勾选“虚拟内存”“被压缩的内存”“PID”等辅助列
- 在搜索框输入目标进程名(如 Mos、AltTab 或你怀疑的应用)
- 保持窗口开启,每隔 1–2 分钟观察其“内存”数值是否稳定,还是持续上涨(比如每分钟 +50–200 MB)
结合终端命令验证异常增长
活动监视器刷新有延迟,对瞬时泄漏不够敏感。可配合终端做快速采样:
- 打开“终端”,输入:
vm_stat 5 | awk '/Pages active/ {print $3}' - 该命令每 5 秒输出一次活跃内存页数,持续增长说明内核层面有未释放对象
- 再开一个终端窗口,运行:
top -o vsize -s 5 -n 1 | grep -E "(Mos|AltTab|your_app_name)" - 观察其 VSIZE(虚拟内存大小)是否随时间单向放大,而非波动收敛
排除内核扩展干扰
当所有用户进程内存都正常,但“内存压力”仍偏高、“已使用的交换”不断上涨,问题可能出在内核层:
- 在终端中运行:
kextstat | grep -v com.apple,列出所有第三方内核扩展 - 重点关注最近安装或更新过的驱动类扩展(如虚拟机、录屏、USB设备管理工具)
- 逐个卸载测试:
sudo kmutil unload -b com.example.driver,卸载后观察 10 分钟内存是否趋于稳定 - 若卸载某扩展后压力明显下降,基本可锁定为该扩展内存泄漏










