2011年10月27日

GC/Windbg/IDisposable/IL/MeteData/JIT 杂谈

摘要: GC工作原理大家都已经知道,简单的说就是按代回收托管对象。哪些托管对象会被回收,是通过每个程序的Root来识记,被Root标记的引用对象以及递归出所有相同的引用对象都是活对象,而未被标记的则意味着要被回收。何时回收对象?对于每个对象,CLR首先尝试把对象分配在0代中,如果0代已满,那么GC才会开始工作,把0代中的对象转移到1代中;如果1代也满,GC将会把1代中的对象转移到2代中。也就是说,CLR会在适当的时机,才开始进行垃圾回收。但是对于非托管对象的处理就显得无能为力,但是GC仍然有自己的解决方式。如果非托管对象实现了Finalize方法,代表此非托管对象可终结。因此在非托管对象被创建时,这. 阅读全文

posted @ 2011-10-27 13:34 小城岁月 阅读(2207) 评论(4) 推荐(3) 编辑

导航

面朝大海,春暖花开!