Garbage Collection

2017-11-30  本文已影响0人  98Future

垃圾回收机制:

但是计算reachablity很大程度是一种Approximation, 因为总会有一些奇怪的case

Mark & Sweep:

Mark = 找到所有reachable objects 标记一下。

sweep: collects garbage objects.

Mark & Sweep会导致 Fragmentation.  因为Mark 来Mark取的, 不要的就直接删掉。

Stop And Copy:

Best:

对于C, C++, 很难找到所有的reachable objects 而且你很难move objects. 因为如果有指针指向object, 指针里存的地址也得改。

Conservative Theory:

Reference Counting: worst

一个是因为速度慢,一个是因为它无法发现cycle

这里就有一个unreachable self-loops. 由于object之间各自的count都不是0,所以不会被清理!

就算有垃圾回收机制,还是可能内存泄露。

因为有时候很难知道这个Data Structure到底要不要。

所以比较好的做法是, 不用的时候programmer自己手动设置为Null.

这样编译器就知道,ok,这个不用了。

上一篇 下一篇

猜你喜欢

热点阅读