我们的应用程序偶尔会遇到崩溃(通过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
禁用Guard Malloc后,该应用程序运行正常,但启用该应用程序时,这些消息会崩溃.当我使用Leaks和Allocations工具进行配置文件时,没有发现泄漏,并且所有内存的实时字节值都在30 MB到80 MB之间(取决于它当时正在做什么).当然,应用程序的内存不是太多.
但是,消息指向我的应用程序使用太多内存,但我不知道是什么导致虚拟内存耗尽.是否有其他工具或调试器设置可供Xcode使用?
谢谢,
大卫