Skip to content
阅读进度

Dalvik 与 ART 在垃圾回收机制上的主要区别有哪些? ​

返回 性能与稳定性 目录

标准回答 ​

垃圾回收器负责找到不再使用的对象并回收。ART 相比早期 Dalvik 持续改进了并发回收和停顿表现。

  • GC 识别不可达对象,可能并发处理部分阶段。
  • 即使并发回收,也存在暂停和 CPU、带宽成本。
  • 排查时看暂停、分配速率、堆占用及对象保留关系。

通俗例子 ​

列表滑动时不断创建对象,任何运行时都可能承受回收压力;不能因为用了 ART,就认为创建多少对象都不会卡。

深入解释 ​

**垃圾回收依据什么:**GC 从仍在使用的根对象沿引用关系寻找可达对象。页面已经关闭只是业务事实;如果仍被静态字段或运行任务引用,它依旧可能被判定为可达。

**怎样比较 Dalvik 与 ART:**二者不只是垃圾回收器不同,代码执行与编译机制也不同。具体 GC 算法和停顿表现随 Android 版本演进,不能把所有 Dalvik 或 ART 版本概括成一个固定停顿值。

易混淆点 ​

不要背“ART 完全没有 STW”或所有版本都使用同一种收集器。

参考资料 ​

内容来源 ​

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