一. 内存分析
主要目的就是为了检测程序是否存在内存泄露
- 静态内存分析(Analyze)
作用:
逻辑错误:访问未初始化的变量, 野指针等;
声明错误:从未使用过的对象;
内存管理错误:如内存泄漏等;
分析方法:
静态内存分析是不运行程序,直接对代码进行分析.
根据代码的上下文的语法结构,来分析是否有内存泄露
缺点:
不一定准确,但是如果发现有提示,那么去结合上下文看一下,这里的代码是否有问题
场景演练:
MRC
下桥接- Foundation 和CoreFoundation框架的数据类型转换
ARC
下桥接- Foundation 和CoreFoundation框架的数据类型转换
- 内存分配
作用:
查看是内存的分配情况
查看内存是否有释放
场景演示:
UIImage 的两种创建方法测试
imageNamed:
imageWithContentOfFile:
- 动态内存分析
作用:
检测程序在运行过程中是否存在内存泄露
场景演示:
模拟循环引用,
测试内存泄露