eEhdsa

GC

Code

 几点需要注意:

  1.  准确理解.Net 中GEN 0-2, 任何新分配的对象会分配进gen0, 而gen0,1,2在内存上的大小都有限制, 所以可以推出GC执行的情况有以下几种
  • 新分配对象时gen0溢出,则自动GC.Collect()
  • 主动GC.Collect()
  • 内存压力,即gen3都要满时

   2. 一次GC.Collect()大概是以下步骤

  • 挂起正在调用的线程
  • 取得哪些可以被收集, 询问JIT? finalize queue
  • 删除重组

 更多细节:http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx

Code

 The Destructor will be called after GC.collect(2), because we have pushed it to gen 2 in the code before.

posted on 2009-04-09 16:32  eEhdsa  阅读(264)  评论(0编辑  收藏  举报

导航