.NET垃圾回收机制

昨天面试的时候问到了.NET垃圾回收机制

CLR中进行垃圾回收,内存管理

垃圾回收的目的:提高内存利用率

•垃圾回收器,只回收托管堆中的内存资源,不回收其他资源(数据库连接、文件句柄、网络端口等)。
•什么样的对象才会被回收?
–没有变量引用的对象。没有变量引用的对象,表示可以被回收了(null)
•什么时间回收?
–不确定,当程序需要新内存的时候开始执行回收。
–GC.Collect();//手动调用垃圾回收器。不建议使用,垃圾回收时会暂停一下(非常短暂)让程序自动去GC。
•垃圾回收器中“代”的概念:
–共3代:第0代、第1代、第2代。
–各代的回收频率:第0代最高,其次第1代,再次第2代。也就是说越老的对象生存几率越大。
 
•.net中垃圾回收机制:mark-and-compact(标记和压缩)
 
垃圾回收机制中0、1、2等级对应的托管堆的初始化大小分别是256K,2M和10M。
posted @ 2012-09-25 16:12  51秒懂  阅读(222)  评论(0编辑  收藏  举报