Подтвердить что ты не робот

Что означает <не-объект> в распределении "кучи"?

У меня проблемы с памятью, связанные с памятью, в моем приложении для iPad, но, к счастью, из-за этого я узнал о "кучках". Нехорошо, я все еще не могу понять, какая часть предоставленной мне информации имеет значение. alt text

Итак, каковы эти не-объекты, которые все еще живы и занимают большую часть памяти, описанной в "Кучевом росте"? Можно ли избавиться от них? Похоже, что большинство из них связано с различными процессами рисования, CALayer, контекстом и т.д. (Категория: "Malloc" или "Realloc" ). При необходимости я могу предоставить более подробную информацию.

4b9b3361

Ответ 1

Это означает, что блок памяти был выделен не для объекта (например, чистая c-структура). Обычно они выделяются кодом системы, поэтому есть и другие объекты, которые протекают. Например. если вы забыли освободить UIView, тогда его слой также не будет освобожден.

Вы можете открыть панель "Расширенная деталь" (см. меню "Вид" ) и проанализировать стек вызовов. Имейте в виду, что один из release, который вы забыли, может привести к большому количеству утечек памяти, поэтому попробуйте исправить самые простые утечки, а затем проверьте, исчезли ли другие утечки.

Еще один трюк. Вы можете отключить функциональный блок приложения один за другим и посмотреть, исчезает ли утечка. Таким образом, вы сможете найти модуль (класс, функциональный блок и т.д.), Где это происходит.