当前位置:  开发笔记 > 编程语言 > 正文

在编写.NET代码时,关于避免内存泄漏的"注意"列表是什么?

如何解决《在编写.NET代码时,关于避免内存泄漏的"注意"列表是什么?》经验,为你挑选了3个好方法。

当您编写数千行.NET代码时,您要记住什么以避免内存泄漏?我是防止检查的忠实粉丝,有一个着名的例子,关于这一点,使用"StringBuilder"来组合字符串而不是"String1 + String2",那么你的编码经验还有什么呢?

提前感谢您分享您的想法.



1> Ilya Ryzhenk..:

活动.始终取消订阅事件,这是.NET提供的最大漏洞功能.

订阅活动意味着"在你还活着的时候通知并抱着我",而不是"在我活着的时候通知我".未能取消订阅事件通常会导致大量挂起的对象,尤其是在UI中.



2> Gulzar Nazim..:

使用后将根引用设置为null.

这里有更多信息:如果我们忘记取消root化引用,则无法尽快有效地释放内存,从而导致应用程序的内存占用更大.问题可能很微妙,例如在进行远程调用(如数据库查询或调用Web服务)之前创建临时对象的大图形的方法.如果在远程调用期间发生垃圾收集,则整个图表都标记为可访问且未收集.这变得更加昂贵,因为收藏中存活的物品被提升到下一代,这可能导致中年危机.


将变量设置为null很少有用,并且会使代码混乱.特别是,当在方法的其余部分中不再使用局部变量时,它将不会被视为释放模式中的根.通常,只要对象本身是有根的,实例变量就很有用.

3> Ty...:

确保始终处理IDisposable对象.此外,尝试始终使用"using(...)"块来声明一次性对象.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有