我发现了一些关于Android垃圾收集器的信息,这些信息与我相矛盾。
Android Devevelopers指南说:
Android 3.0是该平台的第一个版本,旨在运行 单核或多核处理器架构。各种各样 Dalvik VM,仿生库和其他地方的变化增加了支持 用于多核环境中的对称多处理。这些 优化可以使所有应用程序受益,甚至是那些应用程序 单线程的。例如,有两个活动核心,一个单线程 如果Dalvik垃圾,应用程序可能仍会看到性能提升 收集器在第二个核心上运行。系统将为此安排 自动“。
好的,现在另一件事
根据这个链接: Dalvik虚拟机架构 android使用mark和sweep aproach。
Dalvik垃圾收集器目前的策略是保持标记 位,或指示特定对象的位 “可达”,因此不应该是垃圾收集,分开 来自其他堆内存。
如果我们检查标记和扫描在此链接上的工作方式: 标记和扫描垃圾收集算法 ,我们可以看到:
标记和扫描方法的主要缺点是事实 垃圾时暂停正常的程序执行 收集算法运行。特别是,这可能是一个问题 与人类用户交互或必须满足的程序 实时执行约束。例如,一个互动 使用标记和清除垃圾收集的应用程序变为 没有反应迟到。
所以我现在的问题是,它是如何运作的?垃圾收集器在工作时是否会暂停一切,或者是否能够完全独立于其他活动处理器核心运行?