2009-06-17 62 views
1

當前我有一個Web服務(WCF),它公開了設置爲靜態的方法。通過非靜態的靜態Web服務

從嚴格的內存/ GC的角度來看,CLR和GC如何處理靜態和非靜態對象有什麼不同?

回答

1

靜態數據將不被垃圾收集,直到包含的AppDomain被關閉;通常這意味着內存將保持分配狀態,直到應用程序關閉,除非您正在進行某種特殊的AppDomain管理。非靜態對象將由垃圾收集器,通過正常規則收集 - 不再有引用,並且每當GC運行時。

+0

很酷的東西。對於一次要運行數週的應用程序,我們有一些內存分配問題(超過400MB)。當我們找不到其他錯誤時,我們認爲它可能與我們使用靜態對象有關。我們將從明天開始重新編碼爲非靜態。謝謝你的幫助! – Phillip 2009-06-17 04:35:37