组件介绍
OOMDetector是手Q自研的IOS内存监控组件,腾讯内部目前已有多个App接入了OOMDetector,它主要有以下两个功能:
爆内存堆栈统计:负责记录进程内存分配堆栈和内存块大小,在爆内存时Dump堆栈数据到磁盘
内存泄漏检测:检测内存泄漏,目前支持Malloc内存块和OC对象的泄漏检测
OOMDetector可以快速帮助开发者发现和定位App爆内存问题和内存泄漏,组件目前已经在Github开源,源码地址:https://github.com/Tencent/OOMDetector。
背景
目前业内已有一些比较的IOS内存分析工具,下面逐个介绍这些工具的功能以及它们在使用上的不足。
Allocation
作为IOS开发,我们都很熟悉苹果官方提供的Allocation内存分析工具,在开发调试阶段,可以用Allocation详细分析App各模块内存占用。Allocation对App的内存监控比较全面,能监控到所有堆内存以及部分VM内存分配。虽然Allocation的功能比较强大,但是它也有比较明显的使用局限性,主要表现为以下两点:
无法独立在App运行,只能在调试阶段连接Mac使用
性能较差,大型App开启后容易引发卡死
这两点限制决定了Allocation只适合于在开发阶段辅助分析代码中存在的内存问题,而无法直接对线上用户的问题进行监控和定位。
FBAllocationTracker
FBAllocationTracker是Facebook开源的内存分析工具,它的原理是用 Method Swizzling替换原本的alloc方法,这样可以在App运行时记录所有OC实例的分配信息,帮助Ap

OOMDetector是腾讯自研的iOS内存监控组件,用于解决爆内存堆栈统计和内存泄漏检测。它通过Hook内存分配方法,记录堆栈信息,并在内存触顶时Dump数据。此外,组件还具备内存泄漏检测功能,可检测Malloc内存块和OC对象的无主内存泄漏。OOMDetector已在GitHub开源,有助于开发者定位和解决内存问题。
最低0.47元/天 解锁文章

434

被折叠的 条评论
为什么被折叠?



