跳转至

内存分析

内存泄漏检测和堆分析。

概述

内存泄漏导致应用随时间推移消耗越来越多的 RAM,最终导致 OOM kill 和性能下降。perfetto-cli 通过分析 RSS 增长趋势来检测泄漏,并提供堆支配树分析。

命令

memory leak

通过 RSS 增长趋势分析检测内存泄漏。

perfetto-cli -t trace.perfetto-trace -p com.example.app memory leak

选项:

选项 说明 默认值
--growth-threshold <MB/min> 标记为泄漏的最小 RSS 增长率 5

memory heap

堆支配树分析 — 展示哪些对象保持了最多内存。

perfetto-cli -t trace.perfetto-trace -p com.example.app memory heap

工作流程

  1. 运行 memory leak 检查异常 RSS 增长
  2. 如果检测到泄漏,运行 memory heap 识别保留对象
  3. 关注 retained size 异常大的对象

提示

  • 对长时间 trace 降低 --growth-threshold 以捕获慢速泄漏
  • 堆分析需要开启堆分析功能抓取的 trace
  • 使用 -f json 跨多次测试追踪内存指标