Analyze 静态内存分析

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

程序的运行:从硬盘读取到内存里面,由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,直接分析,蓝色标记符标记的地方就是有可能内存泄漏。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容