【问题标题】:D custom list removal, garbage collectorD 自定义列表清除、垃圾收集器
【发布时间】:2012-10-31 03:52:12
【问题描述】:

假设我有一个双向链表。我想像这样从中删除一个序列:

begin - element - element x element - element - element x element - end
                        \_________________________________/
-: reference
x: removed reference

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

【问题讨论】:

    标签: list class reference d


    【解决方案1】:

    标准垃圾收集器使用mark and sweep 算法,该算法可以处理循环引用,因此无需将其置空(只有从可访问内存到不可访问内存的引用应为空)

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多