Я пытаюсь работать с некоторыми низкими условиями памяти с помощью инструментов. Я могу наблюдать за потреблением памяти в мониторе Physical Memory Free до нескольких MB, хотя Allocations показывает, что All Allocations составляет около 3 МБ, а общий байт - 34 МБ.
Я начал испытывать сбой, так как переместил некоторые операции в отдельный поток с помощью NSOperationQueue. Но я не использовал инструменты перед изменением. Тем не менее, я уверен, что сделал что-то, что я могу отменить, чтобы остановить аварии.
Кстати, он намного стабильнее без инструментов или подключенного отладчика.
У меня есть утечки до почти нет (возможно, до ста байт до сбоя).
Когда я смотрю на Allocations, я вижу только примитивные объекты. И общая память, о которой сообщается, также очень низкая. Поэтому я не вижу, как мое приложение вызывает эти предупреждения с низкой памятью.
Когда я смотрю на кучи с момента запуска, я не вижу там более 3 МБ между базой и суммой всех значений роста кучи.
Что я должен искать, чтобы найти, где проблема? Могу ли я изолировать его от одного из экземпляров контроллера просмотра, например? Или одному из моих других случаев?
Что я сделал: Я выключил и снова включил устройство, и это значительно улучшило работу. Инструменты не сообщают о предупреждении о низкой памяти. Кроме того, я заметил, что физическая свободная память при запуске была только около 7 МБ перед перезагрузкой и около 60 МБ после перезапуска.
Тем не менее, я вижу очень регулярное (периодическое) падение в Physical Free Memory, падение с 43 МБ до 6 МБ (тогда резервное копирование до 43 МБ). Я хотел бы знать, что это вызывает это. У меня нет никаких таймеров, работающих в этом приложении. (У меня есть некоторый performSelector: afterDelay:, но они не активны во время этих тестов.)
Я не использую ARC.