GC垃圾回收

GC垃圾回收(*)
     目的:整理内存,回收不在使用的对象,释放内存以提高效率

          例子:(餐馆服务生合适收拾餐桌
     学习的要求(重点)
      -> 了解GC的作用与简单的步骤
      -> 可以简单复述其运行流程
     什么时候回收
      -> 自动回收
        当内存到达一个上限的时候回收
      -> 手动回收
      实际上GC有一个后台线程在控制,随时监测内存
      怎么回收的呢?
      使用代来描述对象
          每创建一个对象出来,都是第0代
          在系统中每一代有一个内存上限
          当第0代内存到达上限的时候,垃圾回收器就会执行一次
          将没有被引用的对象进行回收,并将保持引用的对象变成第1代
      1代什么时候回收?
          在Net中总共代数有3代:0代、1代和2代
          每一代都是有内存上限的

        
    压缩回收算法
    当对象的大小超过85000个字节的时候,对象属于大对象
        直接放到第一代不参与第一次回收
    在程序中不建议手动实现垃圾回收
        由于回收的时候需要实现压缩算法,会让整个程序运行停止
        实现垃圾回收以后,重新定位对象,再开始运行

posted @ 2013-03-04 20:42  狼小牙  阅读(114)  评论(0编辑  收藏  举报