我的.NET Windows服務中出現System.OutOfMemory異常。我不確定是什麼原因造成的。我懷疑大堆物體中存在碎片,但我不確定。我如何驗證我的假設?如何檢測大對象堆是否導致內存不足異常
我可以使用各種調試器,但是我應該在調試器中尋找什麼?
感謝
我的.NET Windows服務中出現System.OutOfMemory異常。我不確定是什麼原因造成的。我懷疑大堆物體中存在碎片,但我不確定。我如何驗證我的假設?如何檢測大對象堆是否導致內存不足異常
我可以使用各種調試器,但是我應該在調試器中尋找什麼?
感謝
我想這種情況隨機從未在調試你的機器上,對不對?
你可以做的是創建一個轉儲並分析遺骸。
您需要轉向真正的調試大師苔絲。她是調查的Chuck Norris。
CLR Profiler是你的朋友這一點。它可以附加到Windows服務,並收集您需要的所有指標,以便在您的OOM命中時找到罪魁禍首。
您最初是否嘗試過調試源代碼以獲取任何明顯的東西? – 2011-03-03 19:33:51
嗯,這是一個給定的,你永遠不會在它的微小物體上得到OOM。他們總是適合某個地方。使用內存分析器。用真實的生產數據測試您的服務。明年它將是兩倍,覆蓋也是如此。 – 2011-03-03 19:56:00