.NET垃圾回收 问题、建议
基础知识: CLR垃圾回收器采用代(generation)机制,目前支持0、1、2三代。 1、新构造添加到堆的对象称为第0代。 2、经过对第0代的垃圾回收之后,第0代的幸存者被提升至第1代。 3、经过对第1代的垃圾回收之后,第一代的幸存者被提升至第2代。 CLR初始化时,会为每一代选择预算。第0代的预算约为256K,第1代预算约2M,第2代预算约10M。在实际使用过程中,垃圾回收器会用类似启发式算法调整各代的预算。 实例 :该实例运行在.NET4.0环境 View Code internal class Program { private static void Main(string[] args) { StringBuilder sb = new StringBuilder(); Console.WriteLine("创建Datatable前:" + GC.GetTotalMemory(true)/(1024) + "K"); DataTable table = new DataTable("ParentTable"); Console.WriteLine("创建DataTable后对象代数:" + GC.GetGeneration(table) + "代"); DataColumn column; DataRow row; column = new DataColumn();