使用Analyze和Instruments-Leaks分析解決iOS內(nèi)存泄露

實(shí)驗(yàn)的開發(fā)環(huán)境:Xcode 7

一、使用Product-Analyze分析內(nèi)存泄( 快捷鍵: cmd + shift + B )

APP程序開發(fā)完成后,可以利用Xcode的Analyze就能分析到哪里有內(nèi)存泄露。

分析之后可以看到:

這里提示model沒被釋放,有內(nèi)存泄露,那我們釋放

[model? release];

再Analyze分析,顯示Build succeeded,不存在任何內(nèi)存泄露,表明這個(gè)問題解決了。

二、使用Instruments的leaks工具分析內(nèi)存泄露( 快捷鍵: cmd + ctrl + I )

利用Product-Analyze分析內(nèi)存泄露,并不能把所有的內(nèi)存泄露查出來,因?yàn)橛械膬?nèi)存泄露是在運(yùn)行時(shí),用戶操作時(shí)才產(chǎn)生的。那就需要用到Instruments了。

1.

Xcode打開一個(gè)已完成項(xiàng)目,選好模擬器,點(diǎn)擊Run,讓程序跑起來。

2.

點(diǎn)擊Xcode菜單欄 Product -- Profile ( 快捷鍵: cmd + ctrl + I )。

3.

按上面操作,顯示Build succeeded后,會(huì)跳出Instruments工具,選擇Leaks(水龍頭)選項(xiàng)。

4.

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

5.

在模擬器中測(cè)試App各項(xiàng)功能,查看是否有代碼出現(xiàn)內(nèi)存泄露。

6.

定位內(nèi)存泄露代碼,并修改。

將故意注釋掉的[model release];代碼打開。

7.

再次測(cè)試是否存在內(nèi)存泄露。

在添加了[model release];代碼后,再重新Run,然后cmd + ctrl +I, 切換到Leaks界面,無論再怎么點(diǎn)擊“加載音樂”按鈕,都檢測(cè)不到內(nèi)存泄露了,表明內(nèi)存泄露被堵住了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容