ios 内存监控

最近看到腾讯的一个内存监控组件:OOMDetector,于是加到当前的工程里面测试一下。

OOMDetector地址:点击打开链接

按着给的demo,把组件加入到当前工程,真机跑起来,还真发现了1个内存泄漏,但是给出的提示地址是真实的内存地址,需要转换。看了组件使用介绍,看了半天,才注意到文章写的堆栈翻译,又在工程里面找,终于找到了translate_oom.py这个工具。

以下就是具体使用这个工具翻译的过程:

1.在控制台进入new目录:


2.将以下文件拷贝到new目录下:

translate_oom.py(这个是堆栈的翻译文件,相当于工具文件)

OOMDetector.app.dSYM(这个是app编译好跟app同时生成的文件,是符号表路径

normal_malloc20180205_154255347.log(Library/OOMDetector路径下的爆内存日志。取得此日志方法:在测试手机连接电脑的情况下,

在xcode的Window->Devices and Simulators,如下图:

ios 内存监控_第1张图片

,最后右键显示包内容,Library/OOMDetector路径下的爆内存日志



3.输入:python translate_oom.py OOMDetector.app.dSYM normal_malloc20180205_154255347.log,如下图:

ios 内存监控_第2张图片


4.得到的文件:normal_malloc20180205_154255347.log_translated.log

对比normal_malloc20180205_154255347.lognormal_malloc20180205_154255347.log_translated.log可以看到,

normal_malloc20180205_154255347.log_translated.log是可以看到具体代码出错的地方,如下图:

ios 内存监控_第3张图片



5.如果是内存泄漏,需要自己保存内存泄漏的提示信息(同样以log文件保存),然后打开translate_oom.py文件,定位到倒数第二行,translate(0,"stack:","Malloc_size:");将脚本里面参数改成 translate(0,"stack:","leak”),然后按照上面的方式再操作一遍即可。

如下图是内存泄漏的例子:

ios 内存监控_第4张图片

over


你可能感兴趣的:(ios 内存监控)