實(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)存泄露被堵住了。