C# 内存溢出实例

 我来答
匿名用户
2016-11-11
展开全部

c, c++ 中的内存溢出是申请了内测,忘了释放,导致的内存溢出

c# 有gc 的存在,只要对象的引用不存在(申请未托管内存除外),对象就交由gc 管理释放,

所以在c# 中,没有清除引用,gc 不能释放对象,才是内存溢出的原因。


示例:

class Entity
{
    //....
    //是个体积很大的类
}
class DataManager
{
    private static List<Entity> _ls = new List<Entity>();
    
    public static Entity Create()
    {
        var entity = new Entity();
        _ls.Add(entity);
    }
}

//外部大量使用
var entity = DataManager.Create();
//忘了还有个 List<> 保存着引用, gc 就不会释放 create entity 的内存
//就会发现程序的内存占用越来越多
//当然,在实际的项目中,引用关系比这复杂的多得多得多,
//对象引用嵌套在一起,想排除是很难的
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式