CLR via c#读书笔记--垃圾回收
摘要:
访问一个资源的步骤:1.调用IL指令newobj,为资源分配内存2.初始化内存,设置资源的初始化状态。类型的实例构造器负责设置初始化状态。3.摧毁资源的状态进行清理4.释放内存托管堆:进程在初始化时,CLR要保留一块连续的地址空间,这块空间最初并没有对应的物理存储空间。这个地址空间就是托管堆。垃圾回收:第一步:标记阶段标记所有的根沿着线程栈,如果发现一个根引用了一个对象,就在这个对象的同步块索引字段上开启第一位。--对象就这样被标记了第二步:压缩阶段已标记的对象是认为是可以通过应用程序到达的对象,未标记的对象是不可到达的。不可到达的对象被认为是垃圾。垃圾回收只在第0代满的时候发生。非托管资源: 阅读全文
posted @ 2011-06-13 11:28
萧然
阅读(352)
评论(0)
推荐(0)