Проверка использования памяти во время работы приложения

Во время запуска моего приложения я иногда получаю предупреждение о наличии памяти. Это не всегда происходит в одном месте в коде, но я подозреваю, что он имеет какое-то отношение к памяти, выделенной извне моего приложения; то есть, если на iPhone в фоновом режиме много приложений, я получу предупреждение о памяти раньше, и если в фоновом режиме нет приложений, я не получу предупреждение вообще.

  • Есть ли способ, который я могу использовать, чтобы проверить, сколько памяти мое приложение использует в определенный момент?
  • Есть ли способ, который я могу использовать, чтобы проверить, сколько памяти машина (iPhone/iPad) использует в определенный момент? возможно, даже проверить, сколько памяти все еще доступно для использования?
  • В общем, может быть, кто-нибудь знает, где я могу найти данные об ограничениях памяти для разных машин на базе iOS?

Спасибо, Ohad

Ответ 1

Используя Instruments, вы можете проверить, сколько памяти использует ваше приложение. В Xcode4 используйте "Профиль", выберите Leaks, затем нажмите кнопку "Библиотека" на панели инструментов и добавьте инструмент Memory Monitor.

Он покажет обзор всех запущенных приложений и количество используемой памяти.

Ответ 2

Если вы не хотите использовать Инструменты, на самом деле есть класс утилиты, который написал Джулио Петек, который использует текущее использование памяти.

Попробуйте здесь: http://forrst.com/posts/Get_current_Memory_usage-hzw

Ответ 4

Вам не стоит беспокоиться о том, сколько памяти доступно. ОС управляет памятью и выдаст предупреждения потребителям верхней памяти, когда память работает на низком уровне. Что вам нужно сделать, так это убедиться, что вы правильно обрабатываете сообщения didReceiveMemoryWarning и избавляетесь от любых данных, которые могут быть перезагружены по запросу позже. Кроме того, если ваше приложение испытывает проблемы с производительностью, вы должны использовать инструменты для проверки использования ваших приложений в обычных ситуациях и убедитесь, что эффективно используете память и загружаете большие объекты, которые ДОЛЖНЫ быть в памяти в то время.