标签:style class blog code java http
加上对象的额外开销的字节数——“类型对象指针”和“同步块索引”。
Internal sealed class SomeType { ~SomeType(){ //这里的代码会进入Finalize方法 } }
5. 编译上述代码,会发现C#编译器实际是在模块的元数据中生成一个名为Finalize的protected override方法。方法主体被放到try块中,finally块放入了一个对base.Finalize的调用。
6.实现Finalize方法时,一般都会调用Win32 CloseHandle函数,并向该函数传递本地资源的句柄。
4. 像前面一样,垃圾回收后,第0代的幸存者被提升到了第1代,第1代的幸存者被提升到了第2代,第0代再次空出来,准备迎接新对象的到来。第2代中的对象会经过2次或更多次的检查。只有在第1代到达预算容量是才会检查第1代中的对象。而对此之前,一般已经对第0代进行了好几次垃圾回收。
5. CLR的托管堆只支持三代:第0代、第1代和第2代。第0代的预算约为256KB,第1代的预算约为2MB,第2代的预算容量约为10MB。
[CLR via C#]21. 自动内存管理(垃圾回收机制),布布扣,bubuko.com
[CLR via C#]21. 自动内存管理(垃圾回收机制)
标签:style class blog code java http
原文地址:http://www.cnblogs.com/zxj159/p/3782273.html