Memory leaks 我有很多未使用的内存分配给.net

Memory leaks 我有很多未使用的内存分配给.net,memory-leaks,memory-management,out-of-memory,red-gate-ants,Memory Leaks,Memory Management,Out Of Memory,Red Gate Ants,运行ANTS memory profiler时,我发现有很多未使用的内存分配给了.net 我如何确定这是什么原因造成的 我将ANTS生成的摘要报告截图放在这里: 谢谢 Thomas尝试GC.Collect()、reprofile和post output您需要继续分析跟踪,并找出LOH上分配的哪些对象可能会导致碎片。@EugenRieck:问题在于LOH碎片和压缩不确定。GC不会执行压缩,因此手动调用GC.Collect()将不会有帮助。我的意思是:在之前尝试GC.Collect(),重新编制文件

运行ANTS memory profiler时,我发现有很多未使用的内存分配给了.net

我如何确定这是什么原因造成的

我将ANTS生成的摘要报告截图放在这里:

谢谢
Thomas

尝试GC.Collect()、reprofile和post output您需要继续分析跟踪,并找出LOH上分配的哪些对象可能会导致碎片。@EugenRieck:问题在于LOH碎片和压缩不确定。GC不会执行压缩,因此手动调用
GC.Collect()
将不会有帮助。我的意思是:在之前尝试GC.Collect(),重新编制文件并发布输出-请参阅我的位置looking@EugenRieck当前位置仍然不知道这有多重要。LOH碎片发生在LOH上分配了许多对象(即,它们大于85000字节)时,随着时间的推移会解除分配,但不会发生压缩,因此堆中有一堆小“洞”,无法分配太大的对象。因此,由于这些间隙,您最终分配的内存比您需要的要多得多。请尝试GC.Collect()、reprofile和post output。您需要继续分析跟踪,并找出LOH上分配的哪些对象可能会导致碎片。@EugenRieck:问题在于LOH碎片,而压缩是不确定的。GC不会执行压缩,因此手动调用
GC.Collect()
将不会有帮助。我的意思是:在之前尝试GC.Collect(),重新编制文件并发布输出-请参阅我的位置looking@EugenRieck当前位置仍然不知道这有多重要。LOH碎片发生在LOH上分配了许多对象(即,它们大于85000字节)时,随着时间的推移会解除分配,但不会发生压缩,因此堆中有一堆小“洞”,无法分配太大的对象。因此,由于这些间隙,您最终分配的内存比您需要的要多得多。