关于.NET的垃圾回收

      我觉得垃圾回收是个每人学习.NET第一了解到的关于.NET的信息,好像这个就是.NET最吸引人的地方。
      那我今天就在关公面前刷下大刀,让哥们啪啪砖。那废话少说了,垃圾回收(GC),GC会把所有的托管堆内的对象分为3代,0代,1代,2代,并不是每次垃圾回收都会同时回收3个代的所有对象,越小的代拥有的越多被释放的机会,
      CLR垃圾回收算法大概是这个意思。每次回收N次0代的对象,才执行一次1代对象回收,每执行N次1代回收才执行一次2代回收。

      按照道理应该把所有不在使用的对象在0代就进行释放,越到后来对象释放的机会就越小,占用的内存时间就很长。
      当某个对象实例在进行回收的时候,GC发现他在被使用,那不释放,并且将其移入下一代(不包括2代)。

      按照垃圾回收机制0代,1代,2代占用的内存空间256KB,2M,10M。
      就我现在的了解我觉得应该应该每次用完对象就手动释放的对象,但是这样的话垃圾回收就没有什么用处。(矛盾)
      
      不过现在我有个问题想问问博客园的牛人,希望各位不吝赐教,关于缓存存放的地方是在物理内存,还是在虚拟内存。
      我了解32位的操作系统是拥有4G的虚拟内存,4G的虚拟内存分配位三快,一块为堆栈,一块为托管堆,一块为非托管堆。
      这是我的第一篇博客文章,还请各位多多指教,小生有理了。
      

转载于:https://www.cnblogs.com/cageli/archive/2009/08/19/1549461.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值