我使用.NET技术编写了一个Windows服务。我使用`JetBrains dotMemory'工具来了解内存泄漏。
我收到低于报告但作为一个新的蜜蜂,我不知道如何阅读这个。
System
命名空间显示更多幸存的字节。但是,我如何知道哪些代码是内存泄漏的根本原因?
您应该查看幸存的字节/保留字节,它们将指向基础实例或创建的根对象。这取决于您的应用程序设计和实现,以决定是否应保留内存中的指定对象。
如果您确定了创建的根对象,则应尝试分离链接并使.net垃圾收集器自动收集不需要的对象。
没有固定的标志点来识别内存泄漏。
首先,您应该决定要找到哪种内存问题
其他可能的记忆问题Grab this free book。
附:只有作为应用程序作者的人才能回答这个问题,这是一个问题还是它的设计。
内存泄漏的一个来源是未被解除引用的事件处理程序。
示例:myClass.DoSomething + = Event_DoSomething
您需要确保资源如下所示:
myClass.DoSomething - = Event_DoSomething