C# GC何时被调用

本文介绍了C#中的垃圾回收(GC)机制,包括CLR、CTR的概念,以及GC如何管理托管对象。C#的GC是分代的,分为0、1、2三代,随着对象生命周期的延长而晋升。值类型在栈上分配,不需要GC管理,而引用类型在堆上分配,由GC负责。GC触发的情况包括第0代内存不足、显式调用GC.Collect()和系统内存资源不足。垃圾回收时,使用Finalize方法的对象会增加额外的回收成本,应避免不必要的使用。
摘要由CSDN通过智能技术生成

首先要指导GC的机制,这部分转载自:http://blog.csdn.net/qq_20949153/article/details/52188882

CLR:公共运行时环境,管理托管堆。

CTR:设置引用类型,值类型。

GC:只负责回收托管对象,不负责回收非托管对象。

垃圾回收器的基本假定:
         1.
被分配内存空间的对象最有可能被释放。在方法执行时,就需要为该方法的对象分配内存空间,搜索最近分配的对象集合有助于花费最少的代价来尽可能多地释放内存空间。
        2.
生命期最长的对象释放的可能性最小,经过几轮垃圾回收后,对象仍然存在,搜索它时就需要进行大量的工作,却只能释放很小的一部分空间。
        3.
同时被分配内存

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值