У меня есть приложение для iPhone, которое отлично работает в симуляторе. Он хорошо реагирует на предупреждения памяти, избавляясь от всего, что не является абсолютно необходимым. Когда я запускаю его на устройстве, он работает хорошо. Но после определенного объема использования происходит сбой с кодом ошибки 101, который, насколько я могу судить, является причиной того, что ОС убивает его из-за использования памяти. Я вижу предупреждение о памяти (я его регистрирую), и мое приложение отвечает на него, но вскоре умирает.
Если я смотрю на приложение в инструментах (на устройстве или в симе), оно не обнаруживает утечек. Кроме того, чистое использование памяти находится в диапазоне 600-700 Кбайт. Переход от разных представлений моего приложения увеличивает использование памяти (как и ожидалось), но когда представления и контроллеры освобождаются и освобождаются, использование памяти никогда не бывает таким низким, как было. Однако сложение обычно составляет только что-то в диапазоне 1000-2000 байт. Так что, хотя «Утечки» не показывают мне никаких утечек, я подозреваю, что где-то есть проблема. Я также посмотрел на все объекты, которые я выделяю, и все они, кажется, восстановлены, как и ожидалось. Единственные объекты, которые я вижу, которые продолжают увеличиваться, это GeneralBlock-N (где N - некоторое число)
Стоит ли обращать внимание на показатель чистого использования инструментов? Каковы будут следующие шаги в попытке диагностировать проблему?
ДОБАВЛЕНО: Я не делаю никаких вызовов для malloc () или любых библиотек CoreFoundation, которые возвращали бы буфер, за который я отвечаю. Единственные не-Obj-C звонки, которые я делаю, - это запись операторов в NSLog.