JVM:垃圾标记阶段算法之引用计数法
Java JVM About 428 words垃圾标记阶段
对象存活判断。
引用计数法
Reference Counting
。
对每个对象保存一个整型的引用计数器属性。用于记录对象被引用的情况。
对于一个对象只要有任何一个对象引用了A
,则A
的引用计数器就加1
;当引用失效时,引用计数器就减1
;只要对象A
的引用计数器的值为0
,即表示对象A
不可能再被使用,可进行回收。
优点
实现简单,垃圾对象便于辨识;判定效率高,回收没有延迟性。
缺点
- 它需要单独的字段存储计数器,这样的做法增加了存储空间的开销。
- 每次值都要更新计数器,伴随着加注和减法操作,这增加了时间开销的
- 引用计数器有一个严重的问题,即无法处理循环引用的情况。这是一条致命缺陷,导致在
Java
的垃圾回收器中没有使用这类算法。
补充
Python
同时支持引用计数和垃圾收集机制。
Python
解决循环引用问题:
- 手动解除:在合适的时机,解除引用关系。
- 使用弱引用
weakref
,weakref
是Python
提供的标准库,旨在解决循环引用。
Views: 1,475 · Posted: 2022-05-22
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...