外观
Dalvik 与 ART 在垃圾回收机制上的主要区别有哪些?
标准回答
垃圾回收器负责找到不再使用的对象并回收。ART 相比早期 Dalvik 持续改进了并发回收和停顿表现。
- GC 识别不可达对象,可能并发处理部分阶段。
- 即使并发回收,也存在暂停和 CPU、带宽成本。
- 排查时看暂停、分配速率、堆占用及对象保留关系。
通俗例子
列表滑动时不断创建对象,任何运行时都可能承受回收压力;不能因为用了 ART,就认为创建多少对象都不会卡。
深入解释
**垃圾回收依据什么:**GC 从仍在使用的根对象沿引用关系寻找可达对象。页面已经关闭只是业务事实;如果仍被静态字段或运行任务引用,它依旧可能被判定为可达。
**怎样比较 Dalvik 与 ART:**二者不只是垃圾回收器不同,代码执行与编译机制也不同。具体 GC 算法和停顿表现随 Android 版本演进,不能把所有 Dalvik 或 ART 版本概括成一个固定停顿值。
易混淆点
不要背“ART 完全没有 STW”或所有版本都使用同一种收集器。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
3.1.2