如何使用xcode配合instruments分析iOS內存洩露?

Tags: 版本, 內存,

雖然iOS 5.0版本之後加入了arc(自動引用計數)機制,但是有時還是會有內存洩露。

這裡介紹如何使用xcode配合instruments分析iOS內存洩露。

工具/原料

xcode

instruments

方法/步驟

用xcode打開自己的工程,按快捷鍵command+r 運行需要測試的程序。

如何使用xcode配合instruments分析iOS內存洩露

點擊xcode導航欄的“show the debug navigator”,切換到debug模式

然後選中“Memory”,再點擊右側的 “Profile in Instruments”,會自動打開Instruments。

如何使用xcode配合instruments分析iOS內存洩露

這時候會彈出來一個對話框,選擇“Transfer”

如何使用xcode配合instruments分析iOS內存洩露

打開後,這時界面如圖:

如何使用xcode配合instruments分析iOS內存洩露

然後切換到iOS模擬器,點擊那個測試按鈕

如何使用xcode配合instruments分析iOS內存洩露

這個時候會彈出一個對話框,

如何使用xcode配合instruments分析iOS內存洩露

“cancel”取消對話框後,多點幾次“button”,切換到Instruments會發現 “Leaks”一欄裡有幾個紅色的區塊。

這就是內存洩露了。

如何使用xcode配合instruments分析iOS內存洩露

點擊暫停,

然後點擊“Leaks”一欄

如何使用xcode配合instruments分析iOS內存洩露

如何使用xcode配合instruments分析iOS內存洩露

然後點擊“導航欄”切換到“call tree”模式下

如何使用xcode配合instruments分析iOS內存洩露

如何使用xcode配合instruments分析iOS內存洩露

看到列表裡列出了內存洩露的調用邏輯:

如何使用xcode配合instruments分析iOS內存洩露

勾選右邊的詳細窗口中的“hide system libraries”,隱藏系統函數。

這個時候就可以清楚看到我們自己程序中的方法調用層次結構了。

展開後,可以發現是[ViewController onTestLeakBtn].

如何使用xcode配合instruments分析iOS內存洩露

鼠標雙擊“[ViewController onTestLeakBtn ]”這一行,會跳轉到代碼。

剩下的工作就是修改代碼,然後重複以上步驟。直到沒有內存洩露為止。

如何使用xcode配合instruments分析iOS內存洩露

相關問題答案