摘要: 垃圾回收器检测托管堆中是否有应用程序不在使用的任何对象,如果一次垃圾回收之后,堆栈没有可用的内存,new操作符将会抛出OutOfMemoryException(内存溢出)。 每一个应用程序都包含一组根,每个根都是一个存储位置,。其中包含指向引用类型对象的一个指针。该指针要么引用托管堆中的一个对象,要么为null。类型中定义的任何一个静态字段都被认为是一个根,值类型变量永远必备认为是根。 垃圾回收... 阅读全文
posted @ 2016-11-08 15:41 逍遥帝君 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 托管堆分配资源: 一:进程初始化是,CLR要保留一块联系的地址空间,这个地址空间最初并没有对应的物理存储空间。这个地址空间就是托管堆。托管堆还维护着一个指针,我把它称为NextObjPtr。它指向下个对象在堆中的分配位置。刚开始的时候NextObjPtr设为要保留地址空间的基地址。 IL指令newobj用于创建一个对象: ① 计算所有类型及其所有基类型的字段需要的字节数。 ② 加上... 阅读全文
posted @ 2016-11-08 15:40 逍遥帝君 阅读(419) 评论(0) 推荐(0) 编辑