用C#来显示垃圾收集过程的视觉效果2013-11-25 cnblogs JasenKin废话不多说了,本人是搞Web方向的,C/S不太熟悉,先看界面图(比较粗糙),这里仅仅是从一个视觉的 效果来初步显示GC相对应的操作(简单的效果显示,并不是真正的GC内幕,那个我也不懂)

基本概念对象的生成过程(newobj指令)1:计算类型(包括基类)所有字段的字节总数2: 字节总数再加上对象开销字段字节数(相加为:对象所需的字节数)。每个对象包含2个开销字段 :类型对象指针以及同步块索引。WIN32中,各占32位,WIN64中,各占64位。3:CLR检测托管堆中是 否有足够的空间满足对象所需的字节数。如果满足,对象将被分配在NextObjPtr指针指示的地方,实例构造器 被调用,(new操作)返回对象的内存地址。指针NextObjPtr越过对象所在的区域,指示下一个新建对象在托 管堆中的地址。如果不满足,进行垃圾收集。根每一个应用程序都有一组根Root。一个根是一 个存储地址,包含一个指向类型对象的指针。该指针有2种形式:(1)指向托管堆中的一个对象。(2 )设为null。根包括静态字段,方法参数,局部变量,CPU寄存器。对象的代托管堆中 ,对象的代大概为0代,1代,2代,相应的内存容量为256K,2M,10M。当然,垃圾收集器也会自动调整预算容 量。