1.靜態(tài)內(nèi)存分析
概念:不運 行程序,直接對代碼進 行內(nèi)存分析,分析是否有內(nèi)存泄露
優(yōu)點:分析速度快,可以快速對所有的代碼進 行內(nèi)存分析,查找出來對應(yīng)的內(nèi)存泄露
缺點:不 一定準確,但是基本準確.根據(jù)語法上下 文來分析你的程序到底有沒有內(nèi)存
注意:如果提 示有內(nèi)存泄露, 一定要根據(jù)上下 文語法分析代碼是否有問題.
2.動態(tài)內(nèi)存分析
概念:真正運 行起來程序,并且借助 工具來分析代碼是否有某些地 方產(chǎn) 生了內(nèi)存泄露
優(yōu)點:分析 非常準確,并且只要分析出來有內(nèi)存泄露,基本可以斷定代碼 一定有問題
缺點:需要 一處 一處來分析,并不能對全局的代碼進 行分析.
注意:在真實開發(fā)中,應(yīng)該是靜態(tài)內(nèi)存分析和動態(tài)內(nèi)存分析結(jié)合的 方式來分析內(nèi)存.特別是ARC環(huán)境下 面的CoreFoundation框架的東 西,使 用靜態(tài)內(nèi)存分析先分析,之后使 用動態(tài)內(nèi)存分析再來分析 一次,
__weak typeof(self) weakSelf = self;
__strong typeof(weakSelf) strongSelf = weakSelf;