版權聲明:本文為博主原創文章,未經博主允許不得轉載。
使用Analyze和Instruments-Leaks分析解決iOS內存泄露
實驗的開發環境:Xcode 7
一、使用Product-Analyze分析內存泄( 快捷鍵: cmd + shift + B )
APP程序開發完成后,可以利用Xcode的Analyze就能分析到哪里有內存泄露。
分析之后可以看到:
這里提示model沒被釋放,有內存泄露,那我們釋放
[model release];
再Analyze分析,顯示Build succeeded,不存在任何內存泄露,表明這個問題解決了。
二、使用Instruments的leaks工具分析內存泄露( 快捷鍵: cmd + ctrl + I )
利用Product-Analyze分析內存泄露,並不能把所有的內存泄露查出來,因為有的內存泄露是在運行時,用戶操作時才產生的。那就需要用到Instruments了。
1.
Xcode打開一個已完成項目,選好模擬器,點擊Run,讓程序跑起來。
2.
點擊Xcode菜單欄 Product -- Profile ( 快捷鍵: cmd + ctrl + I )。

3.
按上面操作,顯示Build succeeded后,會跳出Instruments工具,選擇Leaks(水龍頭)選項。

4.
先按下紅色的圓形按鈕,再選擇Leak,然后選擇Call Tree,勾選選中Invert Call Tree 和Hide System Libraries。

5.
在模擬器中測試App各項功能,查看是否有代碼出現內存泄露。

6.
定位內存泄露代碼,並修改。

將故意注釋掉的[model release];代碼打開。
7.
再次測試是否存在內存泄露。
在添加了[model release];代碼后,再重新Run,然后cmd + ctrl +I, 切換到Leaks界面,無論再怎么點擊“加載音樂”按鈕,都檢測不到內存泄露了,表明內存泄露被堵住了。