GuardMalloc导致虚拟内存耗尽

Dav*_*ter 9 memory xcode memory-leaks memory-management ios

我们的应用程序偶尔会遇到崩溃(通过BugSense发现),因为看起来内存不足或内存损坏情况,所以为了帮助我跟踪它们,我启用了以下功能:

  • Malloc Scribble
  • Malloc Guard Edges
  • Guard Malloc
  • Objective-C Zombie Objects
  • Malloc Stack Logging
  • 记录例外.

在模拟器中与应用程序进行一些交互(少于30秒)后,将显示以下消息:

GuardMalloc[TrafficDemoEmp-2430]: allocate_pages(): virtual memory exhaused!
GuardMalloc[TrafficDemoEmp-2430]: expandUniquingTable(): VMCopyFailed
GuardMalloc[TrafficDemoEmp-2430]: allocate_pages(): virtual memory exhaused!
GuardMalloc[TrafficDemoEmp-2430]: expandUniquingTable(): VMCopyFailed
Run Code Online (Sandbox Code Playgroud)

禁用Guard Malloc后,该应用程序运行正常,但启用该应用程序时,这些消息会崩溃.当我使用Leaks和Allocations工具进行配置文件时,没有发现泄漏,并且所有内存的实时字节值都在30 MB到80 MB之间(取决于它当时正在做什么).当然,应用程序的内存不是太多.

但是,消息指向我的应用程序使用太多内存,但我不知道是什么导致虚拟内存耗尽.是否有其他工具或调试器设置可供Xcode使用?

谢谢,
大卫

Dav*_*ter 9

User1118321是对的.NSZombies是这个问题的原因.

提交此答案,以便接受答案.