2011-02-28 79 views
0

在我的iPad实时流媒体应用我已经使用2个线程。一个用于收集网络数据并解析它,另一个用于绘制逻辑。我收到以下错误几分钟后:解决MMAP错误

的malloc:* MMAP(大小= 2097152)失败(错误码= 12) 错误:无法分配区域 * *设置malloc_error_break到断点调试
所以我的问题是,请问这个错误来?我如何找到它来自哪里?我该如何解决它?
谢谢你一如既往。

回答

0

您是否尝试过使用仪器工具?这应该有助于缩小问题的范围,以及是否只是需要修复的泄漏,通常内存不足或其他出错的地方。

这听起来像它只是运行内存,所以如果它看起来像它应该有可用的内存也许wierdness部分可能出连续的内存,并没有2Mb的连续块可用?我提到,如果你正在使用多线程alloc/deallocs,你可以很容易地进入碎片混乱,我建议尽量减少主线程以外的任何分配。

(我不得不承认,我不知道像一些HW能避免这一点,但认为它值得一提的,以防万一,如果iOS的不存储虚拟化)

做不到这一切,也许它只是一个对象锁定问题如果你正在做每个线程多个分配?在这种情况下,有什么方法可以在启动之前为该线程预先分配此2Mb块?