硬盤 -->內存-->CPU
內存泄漏:內存空間使用完畢之后未回收
一、靜態(tài)內存分析
- 靜態(tài)內存分析:
- 不運行程序,直接對代碼進行分析
- 沒有真正分配內存,根據(jù)代碼的上下文的語法結構,來分析是否有內存泄漏
- 缺點:不一定準確,但是如果發(fā)現(xiàn)有提示,那么去結合上下文看一下,代碼是否有問題
- 快捷鍵:command +shift +b
- 操作方式:Product -- > Analyze

靜態(tài)內存分析.png
二、動態(tài)內存分析
- 動態(tài)內存分析:
- 真正運行起來程序,查看在程序運行過程中,是否會出現(xiàn)內存泄露的問題
- 優(yōu)點:準確,如果發(fā)現(xiàn)某些地方提示內存泄露,可以根據(jù)提示找到對應的內存泄露位置
- 操作方式:Product --> Profile -->Leaks

動態(tài)內存分析.png
*內存使用注意
-
加載小圖片\使用頻率比較高的圖片
- 利用imageNamed:方法加載過的圖片, 永遠有緩存, 這個緩存是由系統(tǒng)管理的, 無法通過代碼銷毀緩存
-
加載大圖片\使用頻率比較低的圖片(一次性的圖片, 比如版本新特性的圖片)
- 利用
initWithContentsOfFile:\imageWithContentsOfFile:\imageWithData:
等方法加載過的圖片, 沒有緩存, 只要用完了, 就會自動銷毀 - 基本上, 除imageNamed:方法以外, 其他加載圖片的方式, 都沒有緩存
- 利用
-
小圖片\使用頻率比較高的圖片
- 放在Images.xcassets里面
-
大圖片\使用頻率比較低的圖片(一次性的圖片, 比如版本新特性的圖片)
- 不要放在Images.xcassets里面