Skip to content
阅读进度

如何通过减少临时对象创建来降低 GC 频率?请列举具体编码实践? ​

返回 性能与稳定性 目录

标准回答 ​

把重复使用的对象放到合适的位置复用,避免在高频代码里反复申请内存。

通俗例子 ​

自定义 View 把 Paint、Rect 作为成员复用;列表绑定时减少重复解析和大字符串拼接。先看分配记录,再改最热的路径。

深入解释 ​

**为什么临时对象会影响性能:**高频分配让堆增长更快,GC 需要更频繁地检查和回收。即使没有内存泄漏,反复分配与回收也可能抢占执行资源。

**复用要注意什么:**优先复用 Paint、Rect 等明确归属的对象;不要为了省分配把可变对象交给多个线程无保护共享。先看分配热点,再改能实际影响帧耗时的路径。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。