关于GC垃圾回收的原理

时间:2023-12-11 23:52:32

.NET Framework 并不需要担心垃圾回收。但我们还是需要了解它的原理。才能让我们写出更高效的应用程序。

.Net Framework 有一个GC(垃圾回收器),它会自动的帮我们把不需要的数据清除掉。

这时就遇见一个问题。哪些数据需要清理,哪些数据需要保留。

就像宿舍有2个舍友,宿舍中有电视机,有遥控器,有垃圾桶,有衣服,等。我要整理宿舍,这时舍友给我列出了一张“根‘表。任何常用的物品,或正常使用与其相关的物品都将递归保存到这张”跟“表中。(就像我们要保留电脑,那键盘和鼠标也都将保存)。

GC 就是根据JIT和CLR提供的这张跟表递归遍历需要保存的数据。然后清理掉不需要的数据

这张跟表中包括1、全局/静态指针

        2、栈上的指针

        3、CPU寄存器的指针