我正在使用ANTS内存探查器来诊断我的一个.NET 2.0应用程序中遇到的内存泄漏增加。
我在7.5个小时内为该过程拍摄了7张快照,以下是获得的数据的表格表示-
G1代表第1代大小,G2代表第2代大小。除了非托管空间和专用字节,其他所有值均以MB为单位。
我的问题是-
我竭尽全力解决了这个问题,并进行了多次分析,但找不到适当的解决方案。我准备提供所需的任何其他数据。
最佳答案
正如Alex所指出的那样,可以在这里找到关于问题类的大对象堆碎片的很好的解释:
https://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/
该问题在.NET FX开发团队中众所周知,并且一直在得到解决。
使用最新的FX版本,症状很有可能消失。
从.NET 4.5.1开始,将有一个GC方法调用甚至可以压缩LOH:
http://blogs.msdn.com/b/mariohewardt/archive/2013/06/26/no-more-memory-fragmentation-on-the-large-object-heap.aspx
但是,找到LOHF的根本原因要比仅仅清除浪费大量ms的堆的方法更为有效。
让我知道,如果您需要更多详细信息如何隔离这种影响。
塞布
关于.NET应用程序内存使用情况-未使用的.NET以及未托管的内存和碎片数量很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607121/