使用Instruments的leaks工具能帮我分析程序运行时产生的内存泄露
1.打开XCode
2.选择ios Leaks 然后直接choose.
3. 选择target,也就是自己的ios设备,当然设备需要连接到电脑
4.然后选择已安装到设备中的应用程序:
5.开始调试啦,保证程序能在iphone等设备上能运行的前提下,点击Instruments软件左上角的Recode红心按钮,
可以应用程序在手机上已开启,同时Instruments界面上能实时显示内存分配等变化。
其内存分配默认是10s刷新一次,可以自定义设置的,单击Leaks图标,下方可设置snapshot interval(sec)刷新频率。
6.查看内存泄露情况:
当在手机上运行程序时,看到Statistics栏下Live Bytes不断增加,那就说明你的程序有内存泄露了,我大概测了下,手机程序内存使用量接近18M时就会Crash
那怎么定位到时哪里出现内存泄露呢,别着急,看到Leaks对应的状态栏中红柱
把标尺定位到它,鼠标双击,然后下方Leaks下拉菜单选择Call Tree节点
可以看到下面函数名:
双击就能定位到你代码中具体是哪行有内存泄露:
可以看到红色部分代码,创建的CGImageRef 没有释放,顺便说一句,即使你的工程使用了ARC机制,也要手动释放CGImageCreate...的CGImageRef对象,不然还是会内存泄露的,要知道iphone拍一张照片2M,连拍几张就GG了
OK,今天就到这里!