学院新闻

.NET开发过程中内存泄露怎么办

南充清大软舰

当一块内存无法被程序访问到时,垃圾收集器将会重新分配这块内存,但是如果程序仍然保持对内存的引用却不使用这块内存时,就会造成内存泄漏。

南充清大软舰学校现在列举一些可能会存在内存泄漏的系统资源:

1、用于窗口管理的用户对象,包括快捷键表、符号、光标、图标和窗口等。

2、用于内存管理、进程执行和进程间通信的Kernel对象:文件、定时器、进程、访问令牌、信号、套接字等。

3、用于图形的GDI对象:位图、设备环境、画刷、内存DC、字体、元文件、调色板、画笔等。

这些资源都是有限制的,注册表中的GDIProcessHandleQuota和 USERProcessHandleQuota键保存了单个进程可用的最大GDI对象和用户对象数量,默认值是10000。虽然这个数字对于大多数程序足够了,但如果使用的过多则可能会达到另一个限制,一个Windows session最多只能有65536个句柄。

现在再了解下有些内存泄漏的根本原因,到底是怎么样造成泄漏的:

比如说:使用静态引用或者未退订的静态事件(这是最常见的内存泄露原因);未调用Dispose方法或者使用不彻底的Dispose方法等,那么该如何避免内存泄露呢?

1、对象的创建者或拥有者负责销毁对象,而不是使用者;2、当对象不再触发事件时,应该将对象设为null来移除所有的事件订阅者;3、对系统资源的访问应该包装在using块中,这将在代码执行后强制执行Dispose;4、当模型和视图引用同一个对象时,推荐给视图传递一个此对象的克隆,以防止无法追踪谁在使用哪个对象;5、当不再需要一个事件订阅者时退订此事件,为确保安全可以在Dispose方法中退订。



 


总结:本文主要是解答【.NET开发过程中内存泄露怎么办】常年开设室内设计,UI设计,平面设计,软件开发,会计培训-[南充清大软舰]

文章相关标签:对象内存

说明:(www.ncbdqn.com)南充电脑培训学校-[清大软舰]提供南充电脑培训,南充电脑学校,南充电脑培训学校,南充电脑培训班,南充计算机培训,南充计算机学校,南充计算机培训学校,南充平面设计培训,南充平面培训学校,南充平面培训学校,南充电脑短期培训班,南充photoshop培训,南充coreldraw培训,南充cad培训,南充3dmax培训,南充会计培训,南充会计学校,南充会计培训学校,南充会计培训班,南充会计证培训,南充会计培训机构,南充会计培训中心,南充办公文秘培训,南充平面设计培训,南充平面设计学校,南充设计培训班,南充室内设计培训,南充室内设计培训班,南充室内设计培训学校,南充装饰设计培训,南充装饰设计培训学校,南充培训学校,清大软舰,清大软舰职业培训学校,南充清大软舰,南充清大软舰教育,清大软舰教育培训中心,清大软舰电脑学院,清大软舰电脑学校,北大青鸟清大软舰,清大软舰it培训,清大软舰设计培训,清大软舰平面设计培训,清大软舰室内设计培训,清大软舰会计培训,清大软舰电脑培训,清大软舰教育,清大软舰学习认证中心。

联系电话:147-8171-7777(微信同号),180-8035-3433(微信同号)                

转载注明出处:/news/qd2581.html

如果您有什么问题,请点击此处进行即时沟通;