Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 内存突然过度使用_.net_Winforms_Multithreading_Memory Leaks - Fatal编程技术网

.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上爆炸,这是一个完全不同的数字

是的,使用一个好的内存分析器来避免得出不帮助您诊断问题的结论