码迷,mamicode.com
首页 > 移动开发 > 详细

iOS内存泄漏检测

时间:2021-02-02 10:50:05      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:nslog   aop   遍历   smi   调用   lld   ons   操作   dism   

内存泄漏检测原理:

内存分类:
1. 泄漏内存
2. 废弃内存:无用场景,Arc时代多见于循环引用
3. 缓存内存

Leaks检测内存泄漏
Allocations检测废弃内存,通过对比屏幕快照的方式发现内存的便捷化

过往的开源库:
HeapInspector-iOS:改进Allocations检测,hook方法alloc/dealloc/retain/release等记录生命周期,需要重复操作,且易有延迟。
MSLeakHunter:只检测UIViewController和UIView,hook-viewDidDisappear方法,但该方法不准确。需要结合实际操作去分析
MleaksFinder:对NSObject增加一个willDealloc方法,在内部使用弱指针调用一个方法,如果该界面释放了,方法就不会执行。AOP-Hook-界面pop和dismiss。遍历所有对象。单例需要自己重载方法,returnNO;
```
- (void)willDealloc {
id weakself;
dispatch_afert_3*sec {
[weakself noDealloc];
}
}

- (void)noDealloc {
NSLog(@"没有释放");
}
```

iOS内存泄漏检测

标签:nslog   aop   遍历   smi   调用   lld   ons   操作   dism   

原文地址:https://www.cnblogs.com/GOBAT/p/14355719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!