CLR深度结构内存模型,主要是跨代引用。用以描述老年代引用新生代(短暂堆)里面的对象范围。1.GCDescGC对象内存范围操作结构模型class CGCDesc{ CGCDesc () {}}可以看到它里面只有一个默认构造函数。2.CGCDescSeriesGC对象内存范围描述结构模型class CGCDescSeries{public: union { size_t seriessize; val_serie_item val_serie[1]; }; size_t startoffset;}一个共用体和一个八字节的成员变量。3.card_table位标记描述表,它是一块二进制内存,用十六进制表示0x7fffffff44444444 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 00000000000000ff比如n1.selfName= n2会用JIT_WriteBarrier设置0xff,也即是上面的00000000000000ff4.整体card_table确认老年代里面包含了引用新生代(短暂堆)的对象,遍历card_table查找出这个范围。然后遍历这个范围,找到老年代引用
………………………………