最新版 使用Xcode6.4 和Instruments、Leaks調試解決iOS內存泄露

原文地址:http://blog.csdn.net/u010070526/article/details/47442581?

分析內存泄露

最近用到內存泄露,查看以前的博客,方法不錯,但操作時,步驟好多都找不到啦,不知道怎么操作。所以下面做了一個簡單的例子

實驗的開發環境:XCode 6.4

一、Analyze(shift+command+b)

app不crash了,那看看有沒有內存泄露。用XCode的Analyze就能分析到哪里有內存泄露

分析之后可以看到:

這里提示alertView沒被釋放,有內存泄露,那我們釋放

[alertViewrelease];

再分析,這個問題解決了。

二、使用Instruments的leaks工具(command + control + i)

分析內存泄露不能把所有的內存泄露查出來,有的內存泄露是在運行時,用戶操作時才產生的。那就需要用到Instruments了。

或者

選擇第一個 Instruments

按上面操作,build成功后跳出Instruments工具,選擇Leaks選項,

顯示界面如圖,然后選擇Leaks

選擇后界面如圖

好到這里準備工作就算做完啦,開始正式的測試

關鍵的幾步

1、首先我們選中Xcode先把模擬器(command + R)運行起來

2、然后我們再選中Xcode,按快捷鍵(command + control + i)運行起來,

此時Leaks已經跑起來了,我們可以狠明顯的看到,

3、由于Leaks是動態監測,所以我們需要手動操作APP,進行測試,一邊操作APP,一邊觀察Leaks的變化,

當出現紅色柱子時,恭喜你監測到了內存泄露,點擊右上角的第二個,進行暫停檢測(也可繼續檢測,當多個時暫停,一次處理了多個),

下面就是定位修改了

4、此時選中有紅色柱子的Leaks,下面有個"田"字方格,點開,選中Call Tree

顯示界面如圖

5、下面就是最關鍵的一步,在這個界面的右下角有若干選框,選中Invert Call Tree 和Hide System Libraries,(紅圈范圍內)顯示如下:

到這里就算基本完成啦,這里顯示的兩個,就是內存泄露代碼部分,還差一步:定位

6、選中顯示的若干條中的一天,雙擊,會自動跳到內存泄露代碼處,如圖

7、既然找到了內存泄露出,修改即可

測試的demo下載:

測試demo

http://download.csdn.net/detail/u010070526/8995765

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容