【发布时间】:2015-09-24 07:16:07
【问题描述】:
我知道这个问题与内存分配有关,但我只在 iOS 9、XCode 7 中得到它。在 XCode 6.4、iOS 8.4 中,它工作得非常完美,完全没有问题。在 iOS 9、XCode 7 中,它只是经常崩溃并给出此错误。
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug
有什么建议吗?我正在处理内存问题,但我想知道是否存在太多内存问题,那么为什么它在 iOS 8.4 中有效,而在 iOS 9 中无效?
另外,我的所有 UI 都变白了!就像导航栏没有标题一样,自定义标签栏(RDVTabBar)不可见,但是,其他视图控制器在那里(它响应触摸事件,您可以点击该区域并且位于该区域中的按钮起作用!)。
附:我从来没有收到内存警告,也没有调用 applicationWillTerminate: 方法!
更新:我发现这个问题只出现在 iPhone 5 和 4s 上! (非 64 位设备!)
更新 2:当崩溃发生时,我尝试打印一个对象并打印它,我在调试模式下再次遇到相同的错误:
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug.
----------------- 更新 ------------------
好吧,我在这里发现了一些东西:我在 Instruments 中检查了我的应用程序,发现它在 iOS 8.4 中占用了大约 200mb 的内存,而令人惊讶的是,iOS 9.* 占用了 1.5 GB 的内存!这是我不明白的事情!一个应用程序在 iOS 8.4 中占用 200 mb 内存,而同一个应用程序在 iOS 9 上占用 1.5GB 内存!根本看不懂!有什么想法吗?
【问题讨论】:
-
请显示堆栈跟踪。
-
奇怪的是我大部分时间都没有得到任何堆栈跟踪。只需短短三行,应用程序就消失了!
-
按照错误提示执行并在
malloc_error_break中设置断点并从那里打印堆栈跟踪。 -
@casey,除了上面的错误,我没有堆栈轨道。 prntscr.com/8kb4ge
Sep 25 18:49:26 [AppName][10765] <Error>: CGBitmapContextInfoCreate: unable to allocate 1971200 bytes for bitmap data [AppName](10765,0xb029b000) malloc: *** mach_vm_map(size=1048576) failed (error code=3) *** error: can't allocate region securely *** set a breakpoint in malloc_error_break to debug -
@SunilChauhan 我不认为你已经设法解决这个问题了吗?我正在开发一个也遇到这种情况并且仅在 iOS 9 上的应用程序。内存使用量一直在缓慢上升,并且我经常看到 malloc 错误。不知道是什么原因造成的,因为 ARC 应该处理这个问题,并且它适用于 iOS 8 及更低版本。您是否有机会使用 SQLite?
标签: malloc ios9 xcode7 xcode6.4 ios8.4