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工具的使用: