memory
内存分析
静态内存分析
- 硬盘-->内存-->CPU
- 静态内存分析是不运行程序,直接对代码进行分析.
- 但是没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄露
- 缺点:不一定准确,但是如果发现有提示,那么去结合上下文看一下,这里的代码是否有问题
检查内存泄漏
- Product-->Analyze
内存分配
imageName和imageWithContentOfFile的区别
- imageName:加载图片
- 1.当对象销毁,图片对象不会随着一起销毁
- 2.加载的图片占据的内存较大:9.48
- 3.相同的图片只会加载一份到内存中,如果同时使用,使用同一个对象即可
- imageWithContentOfFile:加载图片
- 1.当对象销毁的时候,图形对象会随着一起销毁
- 2.加载的图片,占据的内存较小:6.25
- 3.相同的图片会多次加载到内存中,如果同时使用图片,使用的是不同的对象
- imageName:加载图片
总结:
- imageName:如果一些图片在多个界面都会使用,并且图片较小,使用频率高.(图标/小的背景图)
- imageWithContentOfFile:只在一个地方使用,并且图片较大,使用频率不高.(版本新特性/相册)
Product-->profile-->Allocation 查看内存分配
Product-->profile-->Leaks 查看内存泄漏
#import "UIDevice--Hardware.h" #import "SystemServices.h" // 获取硬件信息 // 获取设备型号(该说说/微博来自iPhone6 Plus) NSLog(@"%@", [[UIDevice currentDevice] platformString]); // 获取硬盘空间(总空间,未使用空间) NSLog(@"%@", [UIDevice currentDevice].totalDiskSpace); NSLog(@"%@", [UIDevice currentDevice].freeDiskSpace); // 获取硬件信息 NSLog(@"%@", [SSHardwareInfo systemDeviceTypeFormatted:YES]);