WPF 內存泄漏優化經歷


最近公司有個CS客戶端程序,有個登錄界面,有個程序的主界面,程序支持注銷功能,但是在注銷后,客戶端的內存一直以40M-50M的速度遞增,因此猜測,應該是WPF程序出現了內存泄漏。下面主要記錄優化內存泄漏的整個歷程:

1.使用VS2013的性能和診斷找到問題點

在VS2013菜單分析-》性能和診斷,打開的界面如下,並勾選內存使用率選項。

單擊開始,啟動程序,界面如下所示:

 

登錄后,等待程序資源全部獲取后,單擊VS2013中拍攝快照

注銷后,再次單擊拍攝快照按鈕

重復上述兩個步驟若干次后,關閉軟件,內存分析工具會自動進行分析,分析后的結果如下圖所示:

選擇快照報告數據查看依據,托管堆和堆,我寫的程序中是在堆中發現快照2比快照會有40多M內存的上升,上面的圖片是優化后的。點擊上升的內存,可以進入快照1和快照2內存的對比的表格:

 

從這個前后內存的對比中,找到是由於主界面的在注銷時關閉,再次登錄后,主界面重新創建顯示,里面ocx的內存發生泄漏。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM