iOS性能优化 - 工具Instruments之Leaks内存泄

2018-08-01  本文已影响36人  Simba_LX

一、内存泄漏

二、内存泄漏的原因分析

(1)动画效果产生的无限循环

(2)多个对象间的相互强引用

(3)定时器NSTimer的使用

(4)代码块block的强引用

(5)代理delegate未使用正确的方法修饰

(1)在视图控制器即将消失时,移除动画特效;

(2)对象间采用弱引用;

(3)在视图控制器即将消失时,停止定时特效;

(4)代码块中的使用弱引用;

(5)尽量使用assign或者weak;

三、查找泄漏点 (两种工具)

  1. Analyze
  1. Instruments-Leaks

四、Analyze使用方法

五、Leaks使用方法

在 instruments 中,虽然选择了 Leaks 模板,但默认情况下也会添加 Allocations 模板.基本上凡是内存分析都会使用 Allocations 模板, 它可以监控内存分布情况。

① 选中 Allocations 模板,(图1区域),右边的3区域会显示随着时间的变化内存使用的折线图,同时在4区域会显示内存使用的详细信息,以及对象分配情况。

② 点击 Leaks 模板(图中2区域), 可以查看内存泄露情况。如果在3区域有 红X 出现, 则有内存泄露, 4区域则会显示泄露的对象。

点击泄露对象可以在(下图)看到它们的内存地址, 占用字节, 所属框架和响应方法等信息.打开扩展视图, 可以看到右边的跟踪堆栈信息

image image
上一篇下一篇

猜你喜欢

热点阅读