内存泄漏
原因:内存泄漏是由对象或者变量没有释放引起的,但实践证明并非所有的未释放的对象或变量都会导致内存泄漏,这与硬件环境和操作系统、系统环境有关
分析工具
1.Analyze:静态分析
使用方式:
CMD + Shift + b
或product -> Analyze
主要查找的问题有:
- 逻辑错误:访问空指针或未初始化的变量等;
- 内存管理错误:如内存泄漏等;
- 声明错误:从未使用过的变量;
-
Api调用错误:未包含使用的库和框架。
内存泄漏——静态.png
2. Leaks:动态分析
使用方式:
product -> profile
或CMD + i
当Leaks进行动态监测时,我们手动一边操作APP,一边观察Leaks的变化,当出现红色叉时,就监测到了内存泄露。
当我们录制到有红叉出现时,使用Leaks定位泄漏代码位置步骤:
1.选择Leak Checks那个图标后,下方的Leaks选择Call Tree
内存泄漏——动态1.png
2.然后最下面一行勾选 Inver Call Tree和Hide System Libraries
内存泄漏——动态02.png
3.选中显示的若干条中的一条,双击,会自动跳到内存泄露代码处
image.png
网友评论