2

编辑:这句话“所以在 android 2.3 中并发标记和扫描用于堆栈相关对象,将所有内容视为指针,复制垃圾收集用于堆中的对象”是否正确?任何人都可以解释吗?android 2.3 中的垃圾收集器

我知道已经讨论了Android 中的垃圾收集主题,但是我找不到关于它如何工作的清晰而详细的解释,特别是在 Android 的最新版本Jelly Bean 4.2中。

除了主要问题,我还有两个更具体的问题:

1)实现了哪些算法(Mark and Sweep、Concurrent Mark and Sweep、Copying、generational、incremental..)以及它们是如何适应实际的 Android/Dalvik 的

2)作为初学者,我如何自己分解它的工作原理(方法或工具)?

任何输入表示赞赏。

4

1 回答 1

7

自 Gingerbread (2.3) 以来,Dalvik 的垃圾收集器没有显着变化,因此您可以找到的那个时代或更新版本的任何信息都可能适用于 Jellybean。

它使用并发标记和清除方法。它不复制或压缩,并且有一点世代的概念(对受精卵分配的内存进行优化)。

了解其工作原理的最佳方法是阅读源代码。大多数相关代码位于dalvik/vm/alloc.

于 2013-04-16T21:13:48.667 回答