內存泄漏及影響
內存泄漏是動態分配的內存塊,在程序的數據空間中任何位置都沒有指向它的指針。這類塊是孤立內存,由於沒有指向這些塊的指針,程序無法引用他們。
內存泄漏會導致App所占用的虛擬內存增加,且通常產生內存碎片,影響App及整個系統的性能。
通常情況下,導致內存泄漏的原因是未釋放分配的內存,而又丟失指向分配塊的指針。
Leaks工具
Xcode的Instruments里面有一個Leaks工具,可以幫助你定位發生內存泄漏的代碼段,以便修復問題。
通過Xcode-Open Developer Tool-Instruments打開Instruments面板,選擇Leaks工具,打開后界面如下圖:
Leaks面板
選擇Target,在右下角Display Setting面板的Call Tree,勾選Invert Call Tree和Hide System Libraries,方便接下來我們迅速查找有內存問題的代碼段。
Display Setting
點擊Recorder Button開始監測,出現下圖紅色X號,表示此處有內存泄漏問題。
內存泄漏
在時間軸上拖拽選擇X號前后區域,可以在左下面板看到所選時間段內調用的函數棧。

