C# 垃圾回收机制

C#的垃圾回收机制原理是跟踪所有被引用到的对象,并整理不再被引用的对象,回收相应的内存。
具体来说,垃圾回收器会从应用程序的root对象出发,利用相互引用关系,遍历在Heap上动态分配的所有对象,没有被引用的对象不被标记,即成为垃圾,而存活的对象被标记,即维护成了一张“根-对象可达图”。完成标记后,垃圾回收器会启用压缩(Compact)算法,对内存中存活的对象进行移动,修改它们的指针,使之在内存中连续,这样空闲的内存也就连续了,这就解决了内存碎片问题,当再次为新对象分配内存时,垃圾回收器不必在充满碎片的内存中寻找适合新对象的内存空间,所以分配速度会大大提高。

你可能感兴趣的:(游戏开发,算法)