静态/动态内存分析

硬盘 -->内存-->CPU
内存泄漏:内存空间使用完毕之后未回收

一、静态内存分析

  • 静态内存分析:
    • 不运行程序,直接对代码进行分析
    • 没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄漏
  • 缺点:不一定准确,但是如果发现有提示,那么去结合上下文看一下,代码是否有问题
  • 快捷键:command +shift +b
  • 操作方式:Product -- > Analyze
静态内存分析.png

二、动态内存分析

  • 动态内存分析:
    • 真正运行起来程序,查看在程序运行过程中,是否会出现内存泄露的问题
  • 优点:准确,如果发现某些地方提示内存泄露,可以根据提示找到对应的内存泄露位置
  • 操作方式:Product --> Profile -->Leaks
动态内存分析.png

*内存使用注意

  • 加载小图片\使用频率比较高的图片

    • 利用imageNamed:方法加载过的图片, 永远有缓存, 这个缓存是由系统管理的, 无法通过代码销毁缓存
  • 加载大图片\使用频率比较低的图片(一次性的图片, 比如版本新特性的图片)

    • 利用 initWithContentsOfFile:\imageWithContentsOfFile:\imageWithData:
      等方法加载过的图片, 没有缓存, 只要用完了, 就会自动销毁
    • 基本上, 除imageNamed:方法以外, 其他加载图片的方式, 都没有缓存
  • 小图片\使用频率比较高的图片

    • 放在Images.xcassets里面
  • 大图片\使用频率比较低的图片(一次性的图片, 比如版本新特性的图片)

    • 不要放在Images.xcassets里面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 内存管理 简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与a...
    丶逐渐阅读 2,008评论 1 16
  • 性能优化 1.如何让你的应用程序更加省电? 答:(1)如果程序用到定位,需要在定位完毕之后关闭定位,或者降低定位的...
    丶逐渐阅读 993评论 0 6
  • 作为单身狗,试问最怕的是什么?过节!情人节、元宵节、七夕情人节、春节...... 都说在外觅食的孩纸每逢佳节倍思亲...
    蜜禅阅读 338评论 0 1
  • 基本命令tar -tf 文件 查看归档文件的内容tar -rf xxx 追加文件到tar中xarg...
    lufaqiang阅读 487评论 0 0