专栏首页ShaoYLiOS---内存分析

iOS---内存分析

内存分析

1.静态内存分析(Analyze)

优点:分析内存非常快,已经可以对整个项目的内存就行分析
缺点:不运行程序,直接对代码进行分析.根据代码的上下文的语法结构,看语法是否有问题.(不够准确,但是如果通过静态内存分析,有提示出现了内存泄露,需要通过分析代码上下文查看是否有内存泄露)

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

优点:真正运行起来程序,并且可以对某一个操作来具体分析.当用户做了某一个操作时,该操作是否产生了内存泄露.(非常准确,如果提示有内存泄露,基本可以说明代码有问题)
缺点:分析速度非常慢,需要一步步来分析代码是否有问题.且可能在分析过程中有遗漏代码

二.内存使用注意

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

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

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

1> 利用initWithContentsOfFile:\imageWithContentsOfFile:\imageWithData:等方法加载过的图片, 没有缓存, 只要用完了, 就会自动销毁
2> 基本上, 除imageNamed:方法以外, 其他加载图片的方式, 都没有缓存

三.2个专业术语

1.内存泄漏

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

2.内存溢出(Out Of Memory)

1> 内存不够用了
2> 数据长度比较小的数据类型 存储了 数据长度比较大的数据

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS----时间日期处理

    用户1941540
  • IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解

    用户1941540
  • 预处理指令--宏定义

    用户1941540
  • 今天说说烦人的Java内存溢出问题

    作为一个开发人员最不想看到的就是BUG,可见性的问题可能还不是最关键的,至少我们可以找到问题,很快解决,一般BUG也不会重复出现;但今天要学习的内存溢出就不一样...

    用户1289394
  • Node.js中的内存泄漏分析

    内存泄漏(Memory Leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。如果内存泄漏的位置比较关键,那么随着处理的进行可能持有越来越多的无用...

    FB客服
  • 什么是物理/虚拟/共享内存——Linux内存管理小结一

    提到内存,我们会想到经常接触的三个词:虚拟内存、物理内存、共享内存。它们分别对应top输出中的VIRT、RES、SHR三列。

    用户5807183
  • 性能测试必备知识(10)- Linux 是怎么管理内存的?

    https://www.cnblogs.com/poloyy/category/1806772.html

    小菠萝测试笔记
  • SQL Server内存

    背景 最近一个客户找到我说是所有的SQL Server 服务器的内存都被用光了,然后截图给我看了一台服务器的任务管理器。如图 ? 这里要说明一下任务管理器不会完...

    用户1217611
  • Apache Spark 内存管理详解(上)

    本文旨在梳理出Spark内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于Spark 2.1版本,阅读本文需要读者有一定的Spark和...

    大数据技术架构
  • spring boot 引起的 “堆外内存泄漏”

    发现配置的4G堆内内存,但是实际使用的物理内存高达7G,确实有点不正常,JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetas...

    纯洁的微笑

扫码关注云+社区

领取腾讯云代金券