硬盘 -->内存-->CPU
内存泄漏:内存空间使用完毕之后未回收
一、静态内存分析
- 静态内存分析:
- 不运行程序,直接对代码进行分析
- 没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄漏
- 缺点:不一定准确,但是如果发现有提示,那么去结合上下文看一下,代码是否有问题
- 快捷键:command +shift +b
- 操作方式:Product -- > Analyze
二、动态内存分析
- 动态内存分析:
- 真正运行起来程序,查看在程序运行过程中,是否会出现内存泄露的问题
- 优点:准确,如果发现某些地方提示内存泄露,可以根据提示找到对应的内存泄露位置
- 操作方式:Product --> Profile -->Leaks
*内存使用注意
-
加载小图片\使用频率比较高的图片
- 利用imageNamed:方法加载过的图片, 永远有缓存, 这个缓存是由系统管理的, 无法通过代码销毁缓存
-
加载大图片\使用频率比较低的图片(一次性的图片, 比如版本新特性的图片)
- 利用
initWithContentsOfFile:\imageWithContentsOfFile:\imageWithData:
等方法加载过的图片, 没有缓存, 只要用完了, 就会自动销毁 - 基本上, 除imageNamed:方法以外, 其他加载图片的方式, 都没有缓存
- 利用
-
小图片\使用频率比较高的图片
- 放在Images.xcassets里面
-
大图片\使用频率比较低的图片(一次性的图片, 比如版本新特性的图片)
- 不要放在Images.xcassets里面