该技能用于诊断 iOS/macOS 应用的内存问题,适用于出现内存警告、retain cycle、长时间使用后崩溃,或想弄清楚应用为何占用大量内存、视图控制器为何不释放等场景。核心观点是约 90% 的泄漏来自三类模式:循环引用、计时器/观察者泄漏、集合持续增长;应先系统诊断,而非猜测代码。
主要能力与用法:先查设备日志中的内存压力、Jetsam 终止、低内存记录;用 Xcode 的 Memory Graph Debugger 查看带警告标记的对象及其循环引用链;用 Product → Profile 的 Memory 模板重复执行操作 5–10 次,观察内存是否持续上升。命令行可快速检查:xcrun leaks MyApp 检测泄漏,xcrun heap -s MyApp 查看堆占用,xcrun stringdups MyApp 查重复字符串,xcrun vmmap --summary MyApp.memgraph 看内存构成,xcrun xctrace record --instrument 'Leaks' --attach 'MyApp' --time-limit 30s --output leaks.trace 无界面录制。
文中列举的常见模式包括:计时器未 invalidate()、通知/KVO 未移除观察者、集合中闭包强捕获 self、双向强引用、视图回调捕获控制器、PHImageManager 请求未取消等,并给出 Combine 自动清理或 deinit 清理等修复方向。同时区分使用中内存增长(泄漏)与后台被 Jetsam 终止(需降低后台内存、做状态恢复、用 MetricKit 监控),并给出分阶段排查流程和不可复现泄漏的处理建议。限制:内容聚焦 Apple 平台内存调试,具体阈值与效果需结合实际情况判断,资料未提供其他平台或收费信息。