一、简介
GC是Dotnet 内存管理的机制,GC负责内存的分配和回收。
二、GC概念
在以往,程序员都需要自己分配、释放资源。很多程序上的错误都因为内存没有释放导致。Dotnet的GC(垃圾收集)机制就让程序员从内存管理的繁琐工作中解放出来,从而专注于业务逻辑的开发。
三、实现
1)内存分配
所有引用类型都从堆中分配。堆可以看做一块连续的内存块。
2)内存回收
当程序请求分配内存时,GC会去堆查看是否还有足够的内存分配;如果不够,则进行内存回收。首先,它会遍历所有的根(全局、静态变量指针,堆栈中局部遍历指针,CPU存储器等)查找出在堆中所有还在被使用的对象,建立一张图。接着,压缩内存,把分散的、还在使用的内存合并移动要一块连续的内存块中,修正根的引用,重指向移动后的内存块。接着,对已分配、已没被使用的内存进行回收。
本文介绍了Dotnet中的垃圾收集(GC)机制,该机制负责内存的分配与回收,旨在减轻程序员在内存管理方面的负担,使其能更专注于业务逻辑的开发。文章详细解释了内存分配过程及如何通过遍历根对象来确定哪些内存仍在使用,以及如何进行内存压缩和回收。
2002

被折叠的 条评论
为什么被折叠?



