Analyze 静态内存分析

2016-07-27  本文已影响41人  健了个平_24

静态内存分析:不运行程序,直接对代码进行分析。

程序的运行:从硬盘读取到内存里面,由CPU一句句执行代码。

静态内存分析即是没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄漏。

- 例如:在MRC中,判断你创建某个对象后,该对象最后有没有调用release方法。

缺点:不一定准确,但是如果发现有提示,会去结合上下文看一下那里的代码是否有问题。


MRC下测试:

- 首先改成MRC模式(方便测试):点击项目选择Build Settings搜索auto,找到Objective-C Automatic Reference Counting,将YES改为NO。

- 点击Product选择Analyze,直接分析,蓝色标记符标记的地方就是有可能内存泄漏。

PS:如图,对象其实已经被释放,但还是有标记,说明静态内存分析不一定准确


ARC测试:

- ARC环境下很少有内存泄漏问题,但使用CF框架时,还是需要手动管理内存。

- 使用CF框架,如果调用了带有Create、Copy、Retain等字眼的函数,就要在最后调用相应的相干release函数。

- 点击Product选择Analyze,直接分析,蓝色标记符标记的地方就是有可能内存泄漏。

上一篇下一篇

猜你喜欢

热点阅读