WPF 內存泄漏優化經歷
最近公司有個CS客戶端程序,有個登錄界面,有個程序的主界面,程序支持註銷功能,但是在註銷後,客戶端的內存一直以40M-50M的速度遞增,因此猜測,應該是WPF程序出現了內存泄漏。下面主要記錄優化內存泄漏的整個歷程:
1.使用VS2013的性能和診斷找到問題點
在VS2013菜單分析-》性能和診斷,打開的界面如下,並勾選內存使用率選項。
單擊開始,啟動程序,界面如下所示:
登錄後,等待程序資源全部獲取後,單擊VS2013中拍攝快照
註銷後,再次單擊拍攝快照按鈕
重復上述兩個步驟若幹次後,關閉軟件,內存分析工具會自動進行分析,分析後的結果如下圖所示:
選擇快照報告數據查看依據,托管堆和堆,我寫的程序中是在堆中發現快照2比快照會有40多M內存的上升,上面的圖片是優化後的。點擊上升的內存,可以進入快照1和快照2內存的對比的表格:
從這個前後內存的對比中,找到是由於主界面的在註銷時關閉,再次登錄後,主界面重新創建顯示,裏面ocx的內存發生泄漏。
WPF 內存泄漏優化經歷
相關推薦
WPF 內存泄漏優化經歷
href 問題 clas 發現 單擊 全部 image 主界面 分享圖片 原文:WPF 內存泄漏優化經歷最近公司有個CS客戶端程序,有個登錄界面,有個程序的主界面,程序支持註銷功能,但是在註銷後,客戶端的內存一直以40M-50M的速度遞增,因此猜測,應該是WPF程序出現了內
Android性能優化之利用Rxlifecycle解決RxJava內存泄漏
Android 前言: 其實RxJava引起的內存泄漏是我無意中發現了,本來是想了解Retrofit與RxJava相結合中是如何通過適配器模式解決的,結果卻發現了RxJava是會引起內存泄漏的,所有想著查找一下資料學習一下如何解決RxJava引起的內存泄漏,就查到了利用Rx
內存泄漏和內存溢出的優化
加載速度 消息 lock recycle 手機廠商 mes 是否 生態 字符 內存泄漏: 對象在內存heap堆中中分配的空間, 當不再使用或沒有引用指向的情況下, 仍不能被GC正常回收的情況。 多數出現在不合理的編碼情況下, 比如在Activity中註冊了一個廣播接收器,
LeakCanary 內存泄漏 監測 性能優化 簡介 原理
tco aosp 多少 工作 play 發布 MIP 主線程 per LeakCanary 內存泄漏 監測 性能優化 簡介 原理 GitHub:https://github.com/square/leakcanary Demo地址:https://github.com/
內存溢出和內存泄漏的區別、產生原因以及解決方案 轉
服務 har 操作 ger 遞歸調用 問題 let share 查錯 內存溢出 out of memory,是指程序在申請內存時,沒有足夠的內存空間供其使用,出現out of memory;比如申請了一個integer,但給它存了long才能存下的數,那就是內存溢出。 內
優雅的App全然退出方案(沒有不論什麽內存泄漏隱患)
我們 超級 -h ini art 使用 span 簡單 activit 在Android開發過程中,特別是界面比較多的情況下,用尋常的退出方式往往是不能全然退出這個應用,網絡上也好多各種退出方案。當中一種應該是被廣大開發人員採納使用,也很的清晰方便。就是在Applica
哪些操作會造成內存泄漏?
函數 數量 引用 第一個 span pan 對象引用 pre 日誌 內存泄漏指任何對象在您不再擁有或需要它之後仍然存在。 垃圾回收器定期掃描對象,並計算引用了每個對象的其他對象的數量。如果一個對象的引用數量為 0(沒有其他對象引用過該對象),或對該對象的惟一引用是循環的,那
LeakCanary:簡單粗暴的內存泄漏檢測工具
ride 1.3 androi blog port == ref 內存泄露 mar 差點兒每一個程序猿在開發的過程中都會遇到內存泄漏。那麽我們怎樣檢測到app是否哪裏出現內存泄漏呢?square公司推出了一款簡單粗暴的檢測內存泄漏的工具-- LeakCa
並發編程(四):ThreadLocal從源碼分析總結到內存泄漏
ngs 一個 交互 而且 當前 logs 點雲 然而 垃圾 一、目錄 1、ThreadLocal是什麽?有什麽用? 2、ThreadLocal源碼簡要總結? 3、ThreadLocal為什麽會導致內存泄漏? 二、ThreadLocal是
java中存在垃圾回收機制,但是還會有內存泄漏的問題,原因是
java 自己 data .so 這樣的 即使 垃圾 ref stack 答案是肯定的,但不能拿這一句回答面試官的問題。分析:JAVA是支持垃圾回收機制的,在這樣的一個背景下,內存泄露又被稱為“無意識的對象保持”。如果一個對象引用被無意識地保留下來,那麽垃圾回收器不僅不會處
Handler使用中可能引發的內存泄漏
art tail www csdn cnblogs ren shu html handle https://my.oschina.net/rengwuxian/blog/181449 http://www.jianshu.com/p/cb9b4b71a820 http://
Android實戰技巧之三十八:Handler使用中可能引發的內存泄漏
sha 指向 ons har 引用 destroy 對象 from weak 問題描寫敘述 曾幾何時,我們用原來的辦法使用Handler時會有以下一段溫馨的提示: This Handler class should be static or le
jprofiler+Linux+weblogic功能簡介,配置及內存泄漏分析示例
客戶 cat color 筆記 自定義 r+ htm his 統計 jprofiler簡介: jprofiler的內存視圖部分可以提供動態的內存使用狀況更新視圖和顯示關於內存分配狀況信息的視圖。所有的視圖都有幾個聚集層並且能夠顯示現有存在的對象和作為垃圾回收的對象。 一、主
Android 常見內存泄漏的解決方式
top 取消 編寫 oid 繼承 實例 重要 track observer 在Android程序開發中。當一個對象已經不須要再使用了,本該被回收時。而另外一個正在使用的對象持有它的引用從而導致它不能被回收。這就導致本該被回收的對象不能被回收而停留在堆內存
MS 這兩項功能有助於找到內存泄漏的操作行為nalysis Tools (MA
讀取 內存泄漏 nbsp htm 一個 查找 com 格式 閱讀 可以將當前的內存 Dump成一個 hprof格式的文件,MAT 讀取這個文件後會給出方便閱讀的信息,配合它的查找,對比功能,就可以定位內存泄漏的原因。 http://bbs.21ic.com/icview-
安卓 內存 泄漏 工具 LeakCanary 使用
集成 代碼 hub 頁面 not in red install 探測 初始化 韓夢飛沙 yue31313 韓亞飛 han_meng_fei_sha [email protected]/* */ LeakCanary是Square開源了一個內存泄露自動探測神器
Android內存泄漏
申請 延遲執行 dev 動態內存分配 learning 速度 基本類型 發送 連通 韓夢飛沙 韓亞飛 [email protected]/* */ yue31313 han_meng_fei_sha #Android 內存泄漏總結 內存管理的目的就是讓
為什麽不取消註冊BroadcastReceiver會導致內存泄漏
tro 什麽 roi sta 還得 -c 交流 span 筆記 原始問題是這樣:然後扔到了很多Android開發交流群裏。接著產生了很多的見解,我感覺比較靠譜的有以下:1、onDestroy被回調代不代表Activity被回收了?官方是這麽說的Perform any fin
ServiceHub.DataWarehouseHost.exe內存泄漏問題的處理
title sof mage 解決 isp family eno 內存泄漏 .com Visual Studio 2017的15.2版本在debug應用程序時,ServiceHub.DataWarehouseHost.exe會出現嚴重的內存泄漏的問題,一個小時左
關於內存溢出和內存泄漏
strong 垃圾 決定 內存泄漏 垃圾回收機制 結束 知識庫 data sha 內存泄漏 內存泄漏(memory leak): 是指程序在申請內存後,無法釋放已申請的內存空間,一次內存泄露危害可以忽略,但內存泄露堆積後果很嚴重,無論多少內存,遲早會被占光。 一般我們所說