其他分享
首页 > 其他分享> > 垃圾回收器

垃圾回收器

作者:互联网

什么是垃圾回收?在创建对象的时候程序会给对象分配内存空间,但是空间不是无限的,所以需要对已经不再使用的对象(垃圾)进行内存空间的回收(释放),这个过程叫垃圾回收。

在C#中垃圾回收是自动完成的,程序员不需要手动实现,但是这个过程对程序性能会产生影响,那么什么时候会触发垃圾回收?

C#将堆分为大对象堆和小对象堆,大对象堆中的对象一般不进行释放,通常释放的是小对象堆中的内存空间

C#将静态字段、局部变量、CPU 寄存器、GC 句柄和终结队列等作为根(root),使用DFS或BFS算法进行遍历,并将被遍历的对象标记,并清除未被标记的对象,然后将其进行压缩,以便释放出连续的内存空间,压缩完成后,将其放在托管堆中,并根据其生存长短分成3代。

C#根据对象的生存长短将其分为三代:

标签:对象,内存空间,回收,C#,垃圾,堆中
来源: https://www.cnblogs.com/aikeming/p/16652580.html