D自定义列表删除,垃圾收集器

wel*_*urm 3 d reference class list

假设我有一个双向链表.我想从中删除一个序列,如下所示:

begin - element - element x element - element - element x element - end
                        \_________________________________/
-: reference
x: removed reference
Run Code Online (Sandbox Code Playgroud)

我想知道我是否还应删除要删除的元素之间的引用,或者垃圾收集器是否以更好的方式处理它.

小智 6

您无需删除这些引用.垃圾收集器可以简单地确定您要删除的三个元素不再可访问,因此无需扫描它们以寻找可能的指针.换句话说,这样做没有性能提升.

要了解为什么会出现这种情况,请考虑此博客文章中提供的第一个算法:http://xtzgzorex.wordpress.com/2012/10/11/demystifying-garbage-collectors/


rat*_*eak 6

标准垃圾收集器使用标记和扫描算法,它可以处理循环引用,因此不需要将那些空值(只有从可达内存到无法访问的引用应该为空)