一. 內(nèi)存分析
主要目的就是為了檢測程序是否存在內(nèi)存泄露
- 靜態(tài)內(nèi)存分析(Analyze)
作用:
邏輯錯誤:訪問未初始化的變量, 野指針等;
聲明錯誤:從未使用過的對象;
內(nèi)存管理錯誤:如內(nèi)存泄漏等;
分析方法:
靜態(tài)內(nèi)存分析是不運行程序,直接對代碼進(jìn)行分析.
根據(jù)代碼的上下文的語法結(jié)構(gòu),來分析是否有內(nèi)存泄露
缺點:
不一定準(zhǔn)確,但是如果發(fā)現(xiàn)有提示,那么去結(jié)合上下文看一下,這里的代碼是否有問題
場景演練:
MRC
下橋接- Foundation 和CoreFoundation框架的數(shù)據(jù)類型轉(zhuǎn)換
ARC
下橋接- Foundation 和CoreFoundation框架的數(shù)據(jù)類型轉(zhuǎn)換
- 內(nèi)存分配
作用:
查看是內(nèi)存的分配情況
查看內(nèi)存是否有釋放
場景演示:
UIImage 的兩種創(chuàng)建方法測試
imageNamed:
imageWithContentOfFile:
- 動態(tài)內(nèi)存分析
作用:
檢測程序在運行過程中是否存在內(nèi)存泄露
場景演示:
模擬循環(huán)引用,
測試內(nèi)存泄露