OutOfMemoryException - 出于想法

Cap*_*mic 2 .net c# profiling out-of-memory

我知道我的问题没有简单的答案,但我会很感激想法,指南或某些东西 - 看看清单

我有一个不断抛出OutOfMemoryException的网络Windows服务.该服务有两个用于x86和x64 Windows的版本.但是在x64上它消耗了更多的内存.我尝试使用各种内存分析器对其进行分析.但我无法弄清楚问题是什么.诊断 - 服务消耗了大量的VMSize并在3到12小时后崩溃应用程序.行为是相当随机的 - 崩溃情景没有可观察的模式.

我还试着看一下性能计数器(perfmon.exe).我可以看到堆大小正在增长,%GC时间平均为19%.内存分配与%CPU时间相关.

我的应用程序有线程和锁定对象,数据库连接和WCF接口.我想解决的一般问题:

GC GC对象或某些非托管(窗口)对象消耗内存的速度是否足够快?

请参阅列表中的第一个应用程序 http://s45.radikal.ru/i109/1003/af/92a389d189e8.jpg http://s45.radikal.ru/i109/1003/af/92a389d189e8.jpg

带有性能计数器的图片链接查看 http://s006.radikal.ru/i215/1003/0b/ddb3d6c80809.jpg

Dav*_*und 7

您的问题是您不知道消耗大量内存的是什么?当进程使用大量内存时,您可以打开任务管理器,右键单击您的进程并创建一个转储文件,您可以在windbg中检查该文件以确切了解分配内存的内容.

Tess Ferrandez有很多优秀的演示.她在这里经历了最有用的东西......