我想了解用C#編寫的應用程序中發生了什麼。以下是幾個從性能監視器拍攝的圖像。藍線在所有堆中都是#Bytes。綠線是大對象堆大小。我啓動應用程序並登錄。該應用程序保持閒置狀態。第一張圖片顯示,由於某種原因,LOH增加,然後下降。一個模式非常清楚。什麼是這種行爲的責任?C#Windows Form應用程序中的奇怪內存使用模式
更多。我通過ODP.NET使用Oracle數據庫從A開始執行一些繁重的處理(參見下圖)。之後,應用程序保持空閒狀態。 LOH不會下降。相反,它由於某種原因而不斷增加。請注意,該應用程序是空閒的。它只是在我的桌面上打開。我甚至沒有與它互動。
記憶保持增加(每個圖像代表1點15分00秒)。
後超過2小時突然它降低,雖然它開始增加後/再次降低(見下文)作爲第一圖像英寸所有的時間都是空閒的。到底是怎麼回事?這是內存泄漏嗎?我不這麼認爲。我們對該應用進行了分析並找不到任何內容。此外,LOH增加而沒有任何活動。沒有與Oracle數據庫的開放連接。 ODP.NET可能是罪魁禍首嗎?
不要真的相信有人可以幫助你。太項目特定的東西。 – Tigran
使用分析器。 –
我們正在使用一個分析器,我們無法發現任何異常。重點是:GC下正在發生一些事情。爲什麼在應用程序閒置時內存分配增加,以及爲什麼內存突然減少。如果我只是登錄,應用程序會顯示分配/釋放模式,這是沒有意義的。這是幹什麼的? –