memory

内存分析

静态内存分析

  • 硬盘-->内存-->CPU
  • 静态内存分析是不运行程序,直接对代码进行分析.
  • 但是没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄露
  • 缺点:不一定准确,但是如果发现有提示,那么去结合上下文看一下,这里的代码是否有问题
  • 检查内存泄漏

    • Product-->Analyze

    内存分配

  • imageName和imageWithContentOfFile的区别

    • imageName:加载图片
      • 1.当对象销毁,图片对象不会随着一起销毁
      • 2.加载的图片占据的内存较大:9.48
      • 3.相同的图片只会加载一份到内存中,如果同时使用,使用同一个对象即可
    • imageWithContentOfFile:加载图片
      • 1.当对象销毁的时候,图形对象会随着一起销毁
      • 2.加载的图片,占据的内存较小:6.25
      • 3.相同的图片会多次加载到内存中,如果同时使用图片,使用的是不同的对象
  • 总结:

    • 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]);
    

results matching ""

    No results matching ""