iOS圖解Leaks工具使用 – iPhone手機開發 iPhone軟體開發教學課程

對於Leaks工具而言,隻是為瞭幫助開發者能更好的開發出一款穩定性能的APP。僅僅是一個檢測的工具,具體為什麼在ARC下很多開發者還是會造成如此多的內存泄露,這裡不做評判。下面圖解一下Instruments中Leaks該如何檢測我們的內存問題,希望能幫助提高新人開發者的代碼質量。

這裡我隨意創建一個工程,書寫瞭一段兩個Array對象循環引用導致的內存泄露,我們通過工具來檢測一下

- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *arr1 = @[@"1", @"2"].mutableCopy;
    NSMutableArray *arr2 = @[@"23", @4].mutableCopy;

    [arr1 addObject:arr2];
    [arr2 addObject:arr1];

}

運行你的程序,點擊程序內存使用情況如下圖:

這裡寫圖片描述

點擊 Profile in Instruments 按鈕,彈出如下提示

這裡寫圖片描述

點擊 Restart 重新開始,則Leaks會自動啟動如下

這裡寫圖片描述

到這裡Leaks就開始檢測瞭,如果檢測到內存泄露就會紅X提示

這裡寫圖片描述

選擇Call Tree,再隱藏掉系統庫,如果檢測到泄露,我們可以立即暫停檢測來修復

這裡寫圖片描述

當然,也可以檢測一段時間後暫停,然後通過以下方式來定位某個泄露區域的代碼實現

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

雙擊進入到泄露的代碼位置,我們可以通過一系列的設置達到自己想查看的效果

這裡寫圖片描述

點擊圖中的Xcode圖標可以直接定位的此類的代碼位置,便於我們修改

這裡寫圖片描述

到這裡我們隻檢測出瞭泄露的代碼,具體如何修改,我們還得有一定的MRC基礎才可以,我們必須瞭解內存管理的原則及原理。

假設我們修改好此處的內存泄露問題,我們就可以重新運行檢測瞭

這裡寫圖片描述

這裡寫圖片描述

當然,如果你不知道問題的原因,你也可以保存下你的檢測過程,請教您旁邊的大神同事

這裡寫圖片描述

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *