用 leaks 检查进程内存泄漏
用系统自带的 leaks 命令扫描运行中的 macOS 进程,找出已经「够不着」的泄漏内存。
运行 sudo leaks <PID> 即可扫描进程的泄漏内存,输出泄漏次数和总字节数。
01命令
命令
$ sudo leaks <pid> | head -4002作用说明
leaks 会遍历运行中进程的 malloc 堆,报告那些仍被分配、但已没有任何指针引用的内存——这正是教科书式的泄漏定义。输出的开头就是关键汇总:泄漏总字节数、泄漏次数,以及每块泄漏内存的创建调用栈。它与 vmmap(显示全部内存,无论是否可达)互为补充,而且对任何进程都可用,不限于自己写的程序;对 Swift/Objective-C 程序,Instruments 的 Leaks 视图更直观。
03风险
!注意: leaks 扫描时会短暂暂停目标进程,不适合对延迟敏感的线上服务;查看其他用户的进程需要 root。进程内存增长也可能只是缓存或碎片化,并非泄漏——先对比 vmmap 的脏页数据再下结论。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- leaks(1) macOS man page依据: Man page for leaks: searches a process's memory for leaked (unreferenced) malloc buffers and reports counts and sizes.
- Finding Memory Abuses - Apple Developer依据: Apple documentation describing using the leaks tool to detect unreachable memory in a running process.
最后验证: 2026-09-18 · 分类: 开发者