2011-02-28 72 views
0

在我的iPad實時流媒體應用我已經使用2個線程。一個用於收集網絡數據並解析它,另一個用於繪製邏輯。我收到以下錯誤幾分鐘後:解決MMAP錯誤

的malloc:* MMAP(大小= 2097152)失敗(錯誤碼= 12) 錯誤:無法分配區域 * *設置malloc_error_break到斷點調試
所以我的問題是,請問這個錯誤來?我如何找到它來自哪裏?我該如何解決它?
謝謝你一如既往。

回答

0

您是否嘗試過使用儀器工具?這應該有助於縮小問題的範圍,以及是否只是需要修復的泄漏,通常內存不足或其他出錯的地方。

這聽起來像它只是運行內存,所以如果它看起來像它應該有可用的內存也許wierdness部分可能出連續的內存,並沒有2Mb的連續塊可用?我提到,如果你正在使用多線程alloc/deallocs,你可以很容易地進入碎片混亂,我建議儘量減少主線程以外的任何分配。

(我不得不承認,我不知道像一些HW能避免這一點,但認爲它值得一提的,以防萬一,如果iOS的不存儲虛擬化)

做不到這一切,也許它只是一個對象鎖定問題如果你正在做每個線程多個分配?在這種情況下,有什麼方法可以在啓動之前爲該線程預先分配此2Mb塊?