您的位置:首页 > 职场人生

IT职场生存法则

2006-11-04 18:15 363 查看
.NET Framework的垃圾回收器管理和内存分配与释放.
当在应用程序中new出新对象的时候,运行库就会在托管堆中为其分分配一定的内存空间,只要托管堆中有存储空间就会一直分配下去,但是内存是有一定容量的,这@"G:\MyDemo就需要垃圾回收器对内存中的对象进行管理.
为new出的新对象进行分配空间的过程:要先分析实例化字段所需空间,对象所需空间包括两部分,同步块索引和类型对象指针;分配物理内存,新对象指针指向下一个可用内存区域.
垃圾回收标记:对在线程堆栈中有指针的对象进行标记,释放那些没有标记的对象,调整存在对象的位置.
垃圾回收过程:微软引进一种”代”机制进行垃圾回收管理,0代分配256K ,1代分配2M,2代分配10M.首先一直在托管堆中的0代添加对象例如当添加到五个的时候0代空间用完,则触发0代回收机制,对其中无标记的对象进行释放,然后将0代剩下的对象放入1代中,将将要添加的对象存入0代,继续往0代添加对象当0代空间再次用完时,就又触发0代垃圾回收机制,将无标记的对象释放,再将其余对象添加到1代,当0代再向1代添加而此时1代也无存储空间,则触发1代垃圾回收,先将1代中无标记的对象释放,然后再将1代中剩余的对象添加到2代中,将要0代的对象添加到1代中,继续往0代添加对象如此往返循环.

本文出自 “IT” 博客,请务必保留此出处http://3298563.blog.51cto.com/3288563/623460
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: