.net 内存突然过度使用
我有一个问题,我的应用程序可以正常运行数小时,但突然增加了内存使用量(在几分钟内),直到崩溃。如果我们在增加内存使用的过程中最小化应用程序,那么内存就会下降,并保持一段时间。这似乎发生得很不一致。知道如何排除故障/原因是什么吗 有很多工具可以帮助您发现这类问题。试试看 蚂蚁允许你拍摄快照并比较它们。这将帮助您发现占用额外内存的内容.net 内存突然过度使用,.net,winforms,multithreading,memory-leaks,.net,Winforms,Multithreading,Memory Leaks,我有一个问题,我的应用程序可以正常运行数小时,但突然增加了内存使用量(在几分钟内),直到崩溃。如果我们在增加内存使用的过程中最小化应用程序,那么内存就会下降,并保持一段时间。这似乎发生得很不一致。知道如何排除故障/原因是什么吗 有很多工具可以帮助您发现这类问题。试试看 蚂蚁允许你拍摄快照并比较它们。这将帮助您发现占用额外内存的内容 WinDbg允许您检查堆。这个dumpheap命令很有用。查找意外数量的实例。要检查GC不回收对象的原因,请使用!gcroot命令。获取战利品获取更多关于WinDBg
WinDbg允许您检查堆。这个dumpheap命令很有用。查找意外数量的实例。要检查GC不回收对象的原因,请使用!gcroot命令。获取战利品获取更多关于WinDBg+SOS的信息 你必须找一个内存修补程序/调试器来缩小研究范围如果你在最小化应用程序主窗口时发现内存诊断显著减少,那么你看到的是错误的内存诊断。这就是工作集,映射到RAM的虚拟内存量。工作集总是可变的,它在很大程度上取决于其他进程正在运行什么,并且需要将它们自己的页面映射到RAM。当一个应用程序的可用虚拟内存耗尽时,它会在OOM上爆炸,这是一个完全不同的数字 是的,使用一个好的内存分析器来避免得出不帮助您诊断问题的结论