(1)背景知识
GC的基本算法,大体上都逃不出 标记清除、复制收集 及 引用计数 三种方式以及它们的衍生品。而.NET CLR中的GC机制所采用的的分代机制 也正是 标记清除 的升级衍生品。有关GC的基本算法的介绍,可以参考我的这一篇文章:《内管管理与GC那点事儿》。
Just So So ...
(1)背景知识
GC的基本算法,大体上都逃不出 标记清除、复制收集 及 引用计数 三种方式以及它们的衍生品。而.NET CLR中的GC机制所采用的的分代机制 也正是 标记清除 的升级衍生品。有关GC的基本算法的介绍,可以参考我的这一篇文章:《内管管理与GC那点事儿》。
(1)背景知识
由于有了垃圾回收机制的支持,对象的析构(或释放)和C++有了很大的不同,这就需要我们在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Finalize方法来保证一个对象正确而高效地被析构。
每一个.NET应用程序最终都会运行在一个OS(操作系统)进程中,假设这个OS的传统的32位系统,那么每个.NET应用程序理论上都可以拥有一个4GB的虚拟内存。.NET会在这个4GB的虚拟内存块中开辟三块内存作为 堆栈、托管堆 以及 非托管堆。