Article / 2026/05/31

性能优化 (二十六) 线上内存监控方案

性能优化 (二十六) 线上内存监控方案 的技术笔记。

线上内存监控方案

常规方式

常规实现一

  • 设定场景线上Dump:Debug.dumpHprofData()
  • 超过最大内存80% 内存Dump 回传文件 MAT 手动分析
  • Dump文件太大,和对象数正相关,可裁剪
  • 上传失败率高、分析困难
  • 配合一定策略,有一定效果

常规实现二

  • LeakCanary带到线上
  • 预设泄漏怀疑点
  • 发现泄漏回传
  • 不适合所有的情况,必须预设怀疑点
  • 分析比较耗时、也容易OOM

LeakCannary定制

  • 监控生命周期,onDestroy添加RefWatcher检测
  • 二尺确认断定发生内存泄漏
  • 分析泄漏,找引用连
  • 监控组件+分析组件
  • 预设怀疑点-----》》自动找怀疑点
  • 分析泄漏连路慢-----------》》分析Retain size大的对象
  • 分析OOM--------》》对象裁剪,不全部加载到内存

线上监控完整方案

  • 待机内存、重点模块内存、OOM率
  • 整体及重点模块GC次数、GC时间
  • 增强的LeakCanary自动化内存泄漏分析

Giscus 未启用:请在 src/site.config.ts 中配置 repoId 与 categoryId。