计数会有循环引用的问题,而根可达会有浮动垃圾错标的问题,为什么不在使用计数的基础上使用根可达?这样如果一个对象计数为零就可以直接回收,而循环引用可以在下次GC时,无法根可达,然后判定为垃圾。这样不是更加高效吗?
1条回答 默认 最新
- AKA.Dennis.Li 2023-03-22 16:12关注
摘抄书里的解释:
计数器方法容易产生误判
计数器方法是一种基于引用计数的垃圾回收算法。该算法通过对每个对象进行引用计数,并在引用计数为零时回收该对象。然而,该算法存在一个严重的问题,即无法处理循环引用的情况。如果两个对象相互引用,它们的引用计数将永远不为零,因此这些对象永远不会被回收,导致内存泄漏。根可达性分析更加准确
根可达性分析是一种基于可达性分析的垃圾回收算法。该算法通过从一组根对象开始,遍历对象图并标记所有可达对象,在此过程中未被标记的对象即为垃圾对象。相比于计数器方法,根可达性分析不会产生误判,能够更加准确地识别垃圾对象,并及时回收。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 双硬盘安装Ubuntu后windows 无法挂载硬盘
- ¥15 帮我利用jupyter 运行一个正确的代码
- ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
- ¥15 sqlite加密问题咨询
- ¥15 appdesigner接收不到udp组播的数据
- ¥15 verilog 非阻塞赋值下的移位拼接错误
- ¥100 两个按钮控制一个LED
- ¥15 用C语言写离散数学相关问题
- ¥30 如何用python的GephiStreamer连接到gephi中,把Python和Gephi的具体操作过程都展示,重点回答Gephi软件的调试,以及如果代码的端口在浏览器中无法显示怎么处理
- ¥15 ansys机翼建模肋参数