外观
如何通过减少临时对象创建来降低 GC 频率?请列举具体编码实践?
标准回答
把重复使用的对象放到合适的位置复用,避免在高频代码里反复申请内存。
通俗例子
自定义 View 把 Paint、Rect 作为成员复用;列表绑定时减少重复解析和大字符串拼接。先看分配记录,再改最热的路径。
深入解释
**为什么临时对象会影响性能:**高频分配让堆增长更快,GC 需要更频繁地检查和回收。即使没有内存泄漏,反复分配与回收也可能抢占执行资源。
**复用要注意什么:**优先复用 Paint、Rect 等明确归属的对象;不要为了省分配把可变对象交给多个线程无保护共享。先看分配热点,再改能实际影响帧耗时的路径。
内容来源
- Android · AI Agent 知识手册 · 原条目
3.4.2