iOS的动态内存检测
2016-01-25 16:49
288 查看
关于iOS的动态内存检测,Xcode自带了工具(instruments):Leaks。
使用方法:点击Product->Profile,然后选择那个漏水的水管Leaks,进入界面后,点击运行,instruments就会开始自动检测内存泄露的地方了,在这个过程中,可以对手机上运行的测试工程进行操作,图形界面中,上面是Allocations,下面是Leaks,当出现了一条红色的小柱子的时候,就是出现了内存泄露;点击界面中间分隔条,选择Call Tree选项,然后把右边的 “Invert Call Tree” 和 “Hide System Libraries”选项,就可以看到具体是那个类中得哪个方法出现了内存泄露了,双击类名,就出显示出此类此方法中造成的内存泄露代码,ok,接下来就是有针对性的进行代码优化,内存优化了。
由于现在用得都是ARC模式,所以一般出现泄露的地方都是block中的self疏忽了,没有使用weak类型;或者,两个类之间出现了循环应用这种低级错误引起的。不过,有些第三方框架也可能会引起内存泄露。
使用方法:点击Product->Profile,然后选择那个漏水的水管Leaks,进入界面后,点击运行,instruments就会开始自动检测内存泄露的地方了,在这个过程中,可以对手机上运行的测试工程进行操作,图形界面中,上面是Allocations,下面是Leaks,当出现了一条红色的小柱子的时候,就是出现了内存泄露;点击界面中间分隔条,选择Call Tree选项,然后把右边的 “Invert Call Tree” 和 “Hide System Libraries”选项,就可以看到具体是那个类中得哪个方法出现了内存泄露了,双击类名,就出显示出此类此方法中造成的内存泄露代码,ok,接下来就是有针对性的进行代码优化,内存优化了。
由于现在用得都是ARC模式,所以一般出现泄露的地方都是block中的self疏忽了,没有使用weak类型;或者,两个类之间出现了循环应用这种低级错误引起的。不过,有些第三方框架也可能会引起内存泄露。
相关文章推荐
- Runtime Method Swizzling
- iOS添加指纹识别
- ios tableView那些事 (九) tableview的删除
- iOS之横竖屏小结
- iOS-小的知识点
- IOS 开发,调用打电话,发短信,打开网址
- iOS导航栏的translucent属性
- IOS-48-解决开发中自定义控件在不同型号手机上不能显示的问题 (区别在于iOS修改了weak、strong属性)
- iOS 使用View 为屏幕增加一个全屏的蒙层
- ios 设置屏幕方向的两种方法
- iOS更新学习
- iOS 自定义TabBarController
- ios使用3dD Touch Screen Short Cut
- 在iOS开发中使用FMDB
- iOS ViewController里代码结构的规定
- iOS:Xcode7下创建 .a静态库 和 .framework静态库
- 【同行说技术】iOS从小白到大神必读资料汇总(四)
- iOS--利用比例纯代码适配屏幕大小
- IOS7 点击空白处隐藏键盘的几种方法
- 苹果开发者账号那些事儿(三)