的極端發展我正在表現出一些非常奇特的問題的應用程序。它運行在2.5小時左右,然後突然非託管內存開始增長,並迅速增長。在大約半個小時左右的時間裏,應用程序崩潰。.NET應用程序的經驗突然非託管內存
的應用程序未使用任何非託管的DLL。它正在與外部應用程序通信。它使用套接字(通過Stream使用)並通過WCF流進行讀取。
我與螞蟻異形它。非託管內存利用率的突然變化非常驚人;它永遠保持完全平坦,然後突然開始上升,並以穩定的速度繼續這樣做,直到應用程序失敗。託管內存中沒有任何內容似乎不合適。
既然我沒有故意使用非託管代碼,這是很難牽制在泄漏的來源。螞蟻沒有幫助。當它從一開始就不是一個穩定的增長時,很難清除代碼中的問題(應用程序一直處於空閒狀態,儘管它每秒通過具有非常少量數據的套接字來ping服務器一次)。
再次重申,應用程序和服務器都在此期間,兩個空閒;這是在獨立的測試系統上運行(包括服務器和客戶端)。客戶是泄漏的客戶。
這可能有助於http://stackoverflow.com/questions/1180649/how-to-find-dispose-and-memory-issues-c – hatchet
你是否能夠縮小到一個特定的頁面或類? –
出於好奇,它生長的速度有多快?它的增長速度大約是每秒*非常少量的數據*的速度嗎? –