iOS内存分析方法(静态内存和动态内存分析)

1.静态内存分析

静态内存分析采用Xcode自带的Aanlyze进行分析,此方法不用运行项目,只是根据代码上下文进行的分析,只能检测可能的内存泄露。

2.动态内存分析

动态内存分析(Instrument工具:Xcode->Product->Profile)

动态的对内存进行分析,大多时候只是堆内存的分析。

2.1.动态加载图片的内存分析

imageNamed 和imageWithContentOfFile方法的比较

2.1.1. imageName:加载图片

a.当imageview对象销毁时候,图片对象不会随着一起销毁。

b.加载的图片占据的内存比较大

c.相同的图片只会加载一份到内存中,如果同时使用,上使用的是同一个图片对象。

2.1.2 imageWithContentOfFile:加载图片

a.当imageView对象销毁的时候,图片对象会随着一起销毁

b.加载的图片占用的内存比较小。

c.相同的图片对象会多次加载到内存中,如果同时使用图片。使用的是不同的对象。


总结:imageName:如果一些图片在多个界面都会使用,并且图片较小,使用频率高。(图标/小的背景图)。

imageWithContentOfFile:只在一个地方使用,并且图片比较大,使用频率不高。(版本新特性,/相册)。



另附Instrument工具的使用:

iOS内存分析方法(静态内存和动态内存分析)_第1张图片

你可能感兴趣的:(iOS内存分析方法(静态内存和动态内存分析))