【问题标题】:Large circular reference and JVM garbage collector大型循环引用和 JVM 垃圾收集器
【发布时间】:2012-02-17 13:47:07
【问题描述】:

JVM 是否能够找到大型循环引用并收集对象?是否有任何官方文档/链接声明相同?或者您对大型循环引用的垃圾收集有什么好的/坏的经验。

更新链接:http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442

【问题讨论】:

  • 是的。您需要什么样的文件?

标签: java algorithm garbage-collection jvm circular-reference


【解决方案1】:

从简单的角度来看,JVM 使用Tracing Garbage Collection,标记和扫描。循环引用不会干扰这种算法的正确行为,因为它从“基本”级别开始,并通过引用找到可以从那里到达的那些元素。任何无法到达的东西都可以收集/释放。

值得注意的是,JVM 垃圾收集器通常比这复杂得多,并进行了许多优化以使事情变得更快。话虽如此,标记和扫描算法的一般属性仍然适用。

【讨论】:

    【解决方案2】:

    是的。 JVM 的垃圾收集器可以处理循环引用。

    JVM 使用的垃圾收集器不是引用计数垃圾收集器。相反,它通过跟踪仍然可访问的引用(所有线程堆栈上的引用或静态引用)来查找垃圾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 2013-05-11
      • 2016-01-05
      • 2012-06-13
      相关资源
      最近更新 更多