9
由於看起來內存不足或內存損壞的情況,我們的應用程序在外地偶爾發生崩潰(通過BugSense發現),所以爲了幫助我追蹤它們,我啓用了以下功能:GuardMalloc導致虛擬內存耗盡
- malloc的自由曲線
- malloc的警衛邊線
- 員的malloc
- Objective-C的對象殭屍
- malloc的堆棧測井
- 記錄異常。
與應用程序在模擬器(小於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
隨着衛隊的malloc禁用應用程序工作正常,但與它啓用應用程序崩潰與這些消息。當我使用Leaks and Allocations工具進行剖析時,沒有發現任何泄漏,並且所有內存範圍的實時字節值都在30 MB到80 MB之間(取決於當時正在進行的操作)。當然,這對應用程序來說不是太多內存。
但是,消息指向我的應用程序使用太多的內存,但我不確定導致虛擬內存耗盡的是什麼。 Xcode中是否有其他工具或調試器設置可用於幫助?
感謝,
大衛
NSZombies會導致任何你自由的東西不能真正被釋放,因此如果你做了大量的分配就會耗盡內存。 – user1118321
禁用殭屍解決了這個問題。謝謝。 –
嗨,同樣的問題在那裏,並修復禁用殭屍..謝謝。但我沒有得到它的影響,你能解釋我嗎? – Nikunj