Chrome内存堆快照中的"i"是什么?应用内存分析遇大占用问题
内存分析排查:标识为"i"的对象占用大量内存
我在对自身应用做内存分析时,发现标记为"i"的对象占用了大量内存,该对象内部存储了大量来自应用的同属性对象。
相关截图


针对性排查方向
- 明确
"i"对象的类类型:通过内存分析工具查看其类信息,确定是自定义业务类、集合容器类,还是第三方框架生成的代理/包装类,定位对象来源。 - 追踪引用链路:找到持有
"i"对象的上层引用,排查是否是全局单例、缓存集合、未正确销毁的组件(如Activity/Fragment)在持续持有它。 - 分析内部对象的必要性:检查这些同属性对象是否为重复实例,若存在重复创建,可考虑用享元模式复用;同时确认这些对象是否已无业务价值却未被回收。
- 监控对象创建频率:利用内存工具的分配追踪功能,找到
"i"及内部对象的创建代码位置,判断是否存在批量创建后未及时释放的逻辑。 - 验证内存泄漏场景:确认
"i"对象的生命周期是否过长,比如是否在页面销毁、业务流程结束后仍被强引用,导致无法被GC回收。
内容的提问来源于stack exchange,提问作者khadeeja
相关产品推荐
相关产品推荐

