Dalvik GC是使用并发标记和扫描或复制还是两者兼而有之?

时间:2013-06-19 12:43:45

标签: android garbage-collection android-4.2-jelly-bean dalvik

这句话是否正确? “因此在android 2.3并发标记和扫描用于堆栈相关对象处理所有内容作为指针和复制垃圾收集用于堆中的对象”任何人都可以解释? garbage collector in android 2.3

非常感谢。

1 个答案:

答案 0 :(得分:1)

据我所知,dalvikvm中有两种GC模式。一个是ConcurrentMarkSweep,另一个是复制。

在运行时只编译一种模式。

默认模式是并发标记扫描GC。并发仅用于gc标记扫描步骤。在GC流程中,完整的步骤是:

  1. 暂停所有其他主题
  2. 根标记(线程堆栈,jni引用,类静态字段和类对象)
  3. 恢复所有线程期待自己
  4. 并发标记扫描取决于gc标记位图。此处,其他线程处于运行状态
  5. 暂停所有其他主题
  6. 再次根标记
  7. 通过cardtable标记脏对象
  8. 暂停主题
  9. 并发扫描