Visual studio 2010 从应用程序中获胜变得缓慢
我已经使用VisualStudio.NET构建了一个应用程序,它运行良好。在应用程序使用超过2-3小时后,它开始变慢,我不知道为什么。我使用了Visual studio 2010 从应用程序中获胜变得缓慢,visual-studio-2010,memory-leaks,performance,Visual Studio 2010,Memory Leaks,Performance,我已经使用VisualStudio.NET构建了一个应用程序,它运行良好。在应用程序使用超过2-3小时后,它开始变慢,我不知道为什么。我使用了GC.Collect()以获得内存泄漏问题,但现在我有了一个新的问题。 有人知道解决方案吗?试试内存分析器,比如ANTS内存分析器。首先你需要了解发生了什么,然后你可以考虑如何修复它 如果确实存在内存泄漏,只需调用GC.Collect()将毫无用处。垃圾收集器只能收集那些不再从其他对象引用的对象 如果没有正确清理对象,GC将不会收集任何内容 处理内存消耗时
GC.Collect()代码>以获得内存泄漏问题,但现在我有了一个新的问题。
有人知道解决方案吗?试试内存分析器,比如ANTS内存分析器。首先你需要了解发生了什么,然后你可以考虑如何修复它
如果确实存在内存泄漏,只需调用GC.Collect()
将毫无用处。垃圾收集器只能收集那些不再从其他对象引用的对象
如果没有正确清理对象,GC将不会收集任何内容
处理内存消耗时,应强烈考虑以下模式:
弱事件()
如果不取消订阅事件,订阅对象将永远不会释放到垃圾收集中GC.Collect()
实现IDisposable
接口()
(我强烈建议阅读本说明,因为我已经看到了许多错误的实现。)
您应该始终释放您使用的资源。对提供它的每个对象调用Dispose()
这同样适用于流。始终对提供此功能的每个对象调用Close()
提出第2点。三,。使用
块可以更轻松地使用。()
一旦这些代码块超出范围,它们就会自动调用给定对象上相应的Dispose()
或Close()
方法。这与使用try相同,但更方便。。。最后
组合
如果没有更多的细节和/或代码,您的问题可能太广泛而无法回答。未知因素太多,;可能不会有一个简单而通用的解决方案。因为我在调试中进行了部署,所以调试和发布有很大区别吗?在发布模式下构建安装程序是否更快?一般来说,发布模式下的应用程序将略快于调试模式,因为在调试模式下,“幕后”有很多新奇的东西,当部署为发布模式时不会运行。但对于垃圾收集器来说,这不会有太大影响。我认为这是错误的方向。