内存分析
硬盘 -> 内存 -> CPU
内存管理
静态内存分析
内存分析是不运行程序 直接对代码进行分析
但是没有真正分析内存 根据代码的上下文的语法结构,来分析是否有内存泄漏
缺点:不一定准确 但是如果发现有提示 那么去结合上下文看一下 这里的代码是否有问题- 动态内存分析
修改ARC MRC
Image
加载图片
不释放内存 VS 释放内存
imageName VS imageWithContentOfFile
imageName:加载图片
- 当对象销毁,不会随着对象一起销毁
- 加载的图片占据的内存较大
- 相同的图片只会加载一份到内存中,如果同时使用,使用同一个对象即可
imageWithContentOfFile:加载图片
- 当对象销毁时,图片对象会随着一起销毁
- 加载图片占据的内存较小
- 相同的图片会多次加载到内存中,如果同时使用图片,使用的是不同的对象
总结:
- imageName: 如果一些图片在多个页面都会使用,并且图片较小,使用频率高(图标/小的背景图)
- imageWithContentOfFile: 只在一个地方使用,并且图片较大,使用频率不高(版本新特性/相册)
//图片可以放在Assets中
self.image.image = [UIImage imageNamed:@"1.jpg"];
//图片不能放在Assets中,只能以文件形式加入工程
NSString * imagePath = [[NSBundle mainBundle] pathForResource:@"1.jpg" ofType:nil];
self.imageView.image = [UIImage imageWithContentsOfFile:imagePath];