android中实现了哪些类型的垃圾收集器?如何评估这些 GC 的性能?在评估中使用(或应该使用)哪些应用程序?
此外,供应商如何决定他们的设备使用哪种 GC?
android中实现了哪些类型的垃圾收集器?如何评估这些 GC 的性能?在评估中使用(或应该使用)哪些应用程序?
此外,供应商如何决定他们的设备使用哪种 GC?
为了回答您的一个问题,Dalvik VM确实使用了跟踪垃圾收集器,使用标记和扫描方法。
根据Dalvik 虚拟机架构:
Dalvik 垃圾收集器中的当前策略是保留标记位,或指示特定对象“可访问”的位,因此不应被垃圾收集,与其他堆内存分开。
也可以看看:
有关 Android 上的 DVM 和垃圾收集的更多信息(来源):
[每个] 应用程序都有自己的进程,运行自己的虚拟机。因此,如果应用程序正在执行导致它需要执行 GC 的操作,这不会阻塞您自己的进程的 VM。(即使您自己的进程进行了 GC,您也可以轻松地在该进程中运行未附加到 VM 的本机线程,因此不会被 VM 所做的任何事情阻塞。)进程之间的这些类型的交互受到管理几乎完全由内核的调度程序完成,Android 做了很多事情(例如使用后台与前台 cgroup)来让调度程序避免让后台应用程序完成的工作影响前台应用程序的运行。