iOS性能优化-内存泄漏

一、现象

  最近直播助手在iOS11 ReplayKit上面经常出现进程使用内存超过50MB被系统杀掉,并且这种进程被杀掉不会有任何crash log留下来,只能在Console中留下一点消息。

二、使用Xcode的工具Allocation、VM_TRACKER 无法找到泄漏点

  只能看到DirtyMemory一直在递增,VM_ALLOCATE内存一直在增长。工具无法找到原因

三、经过排查,终于发现是下面的代码引起的

  获取系统的CPU、线程、内存信息的时候,没有使用VM_deallocate 函数释放内存,这个通过VM_ALLOCATE方式申请的内存Xcode工具无法追查

四、相关资料

  https://developer.apple.com/library/content/documentation/Performance/Conceptual/ManagingMemory/Articles/MemoryAlloc.html

  https://stackoverflow.com/questions/20471973/understanding-instruments-memory-allocation-log-on-ios

  

原文地址:https://www.cnblogs.com/doudouyoutang/p/7660694.html