我知道有沒有簡單的回答我的問題,但我會很感激的想法,指南或 某種東西到查找在列表OutOfMemoryException異常 - 出出主意
我有網的Windows服務,是不斷拋出OutOfMemoryException。 該服務有兩個適用於x86和x64 Windows的版本。但是,在x64上,它會消耗更多的內存。我曾嘗試用各種內存分析器對其進行分析。但我無法弄清楚問題所在。診斷 - 服務在3到12小時後消耗大量VMSize並崩潰應用程序。行爲是相當隨機的 - 崩潰情景沒有可觀察的模式。
另外我試着看看性能計數器(perfmon.exe)。我可以看到, 堆大小正在增長,%GC時間平均爲19%。 Plus內存分配與%CPU時間相關。
我的應用程序有線程和鎖定對象,DB連接和WCF接口。 的一般問題,我試圖解決:
根本就沒有得到它GC足夠快 到GC對象或一些非管理 (窗口)對象正在消耗 內存?
與性能計數器圖片鏈接第一個應用程序查看 http://s006.radikal.ru/i215/1003/0b/ddb3d6c80809.jpg
在我看來,你有一些對象不是釋放(內存泄漏),或者你的CPU工作太多,框架決定不運行垃圾回收器。還可以查看MSDN垃圾收集器的延遲模式 - http://msdn.microsoft.com/zh-cn/library/bb384202.aspx。你到目前爲止使用了哪種內存分析器? – 2010-03-24 12:21:42
你是從數據庫中查詢很多數據嗎? – AndrewC 2010-03-24 12:26:42
嗨Mikael,我試過dotTrace和螞蟻。他們也崩潰(有時) 將看看你提供的鏈接。 – 2010-03-24 12:31:39