当我打电话给GC.Collect一切正常。但如果我评论这个电话,我会及时收到OutOfMemory。看起来很奇怪。 如何找到这个bug?
其他信息 应用程序有一些项目可以引用从2.0到4.0的不同框架 Aplication是一个windows表单应用程序,使用了devexpress。
答案 0 :(得分:2)
最可能的变种:
编辑: 3.在某些情况下,System.Drawing会抛出OOM异常
答案 1 :(得分:1)
你可能忘了丢弃一个物体。您是否使用任何数据库或其他外部资源?
答案 2 :(得分:1)
如果你必须调用GC.Collect,那么出了点问题。您通常不需要调用垃圾收集器。
答案 3 :(得分:0)
在.net中调试内存泄漏的一种常见方法是使用SOS - 扩展(如果你做一些研究,你会找到像this这样的教程)或者使用内存分析器,比如this一个。 Maby你只是忘了释放(处置)一些非托管的资源吗?
答案 4 :(得分:0)
我会尝试使用CLR profiler调试托管内存问题。
另外,你为什么要自己调用GC.Collect()?这通常是一种反模式。