当您编写数千行.NET代码时,您要记住什么以避免内存泄漏?我是防止检查的忠实粉丝,有一个着名的例子,关于这一点,使用"StringBuilder"来组合字符串而不是"String1 + String2",那么你的编码经验还有什么呢?
提前感谢您分享您的想法.
活动.始终取消订阅事件,这是.NET提供的最大漏洞功能.
订阅活动意味着"在你还活着的时候通知并抱着我",而不是"在我活着的时候通知我".未能取消订阅事件通常会导致大量挂起的对象,尤其是在UI中.
使用后将根引用设置为null.
这里有更多信息:如果我们忘记取消root化引用,则无法尽快有效地释放内存,从而导致应用程序的内存占用更大.问题可能很微妙,例如在进行远程调用(如数据库查询或调用Web服务)之前创建临时对象的大图形的方法.如果在远程调用期间发生垃圾收集,则整个图表都标记为可访问且未收集.这变得更加昂贵,因为收藏中存活的物品被提升到下一代,这可能导致中年危机.
确保始终处理IDisposable对象.此外,尝试始终使用"using(...)"块来声明一次性对象.