Доверяю ли я ObjectAlloc или Leaks за анализ моего приложения для iPhone? - PullRequest
1 голос
/ 02 марта 2010

Когда я запускаю свое приложение для iPhone с «Утечками» (в котором есть раздел для Object Alloc), мое приложение подходит для распределения памяти. Однако, когда я запускаю его только с помощью инструмента ObjectAlloc, память постоянно увеличивается, поскольку приложение запускает свой основной таймер. (Это приложение на основе таймера). Я не уверен, что доверять. Мне просто интересно, есть ли какие-либо проблемы с инструментом ObjectAlloc, которые могут относиться ко мне. Может быть, что-то связано с NSTImer? Я запускаю это на устройстве (не на симуляторе). Спасибо.

1 Ответ

1 голос
/ 02 марта 2010

Да - доверяй инструментам. Они действительно очень точны в наши дни.

Утечки означает объект или распределение, для которого адрес указанного объекта / распределения не хранится где-либо еще в вашем приложении. Память больше недоступна.

Однако устранение всех утечек не означает, что ваше приложение не может расти без границ.

Неограниченный рост может происходить по ряду причин. Возможно, у вас есть кеш, который продолжает добавлять записи, не обрезая наименее недавно использованные записи. Или, может быть, журнал транзакций, который никогда не усекается и не сбрасывается в файловую систему. Или вы можете продолжать загружать новые изображения в свое приложение, не выбрасывая старые.

Как только вы устранили все утечки, посмотрите на вывод ObjectAlloc и выясните, откуда все это выделение памяти. В частности, вы захотите выяснить, что делает ваше приложение, чтобы инициировать распределение. Системные платформы не будут спонтанно вызывать постоянный рост, если ваше приложение не будет прямо или косвенно запрашивать ресурсы, которые будут использованы.

...