美文网首页
iOS-内存分析

iOS-内存分析

作者: 攻克乃还_ | 来源:发表于2016-08-04 21:24 被阅读51次

    一.内存分析

    1.静态分析(Analyze)

    不运行程序, 直接检测代码中是否有潜在的内存问题(不一定百分百准确, 仅仅是提供建议)

    结合实际情况来分析, 是否真的有内存问题

    2.动态分析(Profile == Instruments)

    1> 运行程序, 通过使用app, 查看内存的分配情况(Allocations)

    * 可以查看做出了某个操作后(比如点击了某个按钮\显示了某个控制器), 内存是否有暴增的情况(突然变化)

    2> 运行程序, 通过使用app, 查看是否有内存泄漏(Leaks)

    * 红色区域代表内存泄漏出现的地方

    二.内存使用注意

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

    1> 利用imageNamed:方法加载过的图片, 永远有缓存, 这个缓存是由系统管理的, 无法通过代码销毁缓存

    2.加载大图片\使用频率比较低的图片(一次性的图片, 比如版本新特性的图片)

    1> 利用initWithContentsOfFile:\imageWithContentsOfFile:\imageWithData:等方法加载过的图片, 没有缓存, 只要用完了, 就会自动销毁

    2> 基本上, 除imageNamed:方法以外, 其他加载图片的方式, 都没有缓存

    三.2个专业术语

    1.内存泄漏

    1> 该释放的对象, 没有被释放(已经不再使用的对象, 没有被释放)

    2.内存溢出(Out Of Memory)

    1> 内存不够用了

    2> 数据长度比较小的数据类型 存储了 数据长度比较大的数据

    相关文章

      网友评论

          本文标题:iOS-内存分析

          本文链接:https://www.haomeiwen.com/subject/jsqhsttx.html