Объем памяти приложения на iPhone - PullRequest
4 голосов
/ 09 января 2010

У меня недавно было отклонено приложение из магазина приложений из-за нехватки памяти. Приложение не пропускает память, но его базовый объем памяти кажется слишком высоким. Судя по журналам сбоев, отправленным Apple, он занимал около 14000 страниц в памяти (в основном из-за огромных текстур). Хотя было 2 странных вещи:

  1. Я строго протестировал его на 5 устройствах перед отправкой, и ни на одном из них не получал этот сбой.
  2. Я оптимизировал текстуры после отклонения и довел их до половины исходного размера (потребление памяти для текстур).

У меня нет возможности узнать, сколько страниц сейчас занимает мое приложение, если только я не могу воспроизвести тот же сбой, что и яблоко (чего я никогда не мог). Есть ли другой способ узнать объем памяти моего приложения, чтобы я мог быть уверен, что оно достаточно оптимизировано.

Я попробовал инструменты, но мое приложение вылетает, когда я пытаюсь запустить его через мой XCode (должно быть какая-то проблема с моим XCode). Но он отлично работает, когда я запускаю его прямо на своих iPhone / iPod. Буду признателен за любую помощь в определении объема памяти моего приложения на iPhone (если есть что-то аналогичное диспетчеру задач Windows).

Спасибо

EDIT:

  1. Запуск приложения из XCode приводит к следующей ошибке в консоли: «Ошибка запуска удаленной программы: не удалось получить задачу для процесса 553.»

  2. При запуске приложения с Activity Monitor выдается следующая ошибка: «Цель завершена слишком рано для сбора данных»

EDIT2:

Мне удалось запустить приложение с Activity Monitor, используя профиль разработчика вместо профиля распространения. Но теперь в мониторе активности есть несколько разделов: используемая физическая память, реальная память, виртуальная память. Какой из них я считаю. Чтобы подвести итог, мне нужно знать, какой из этих факторов заставляет iPhone выдавать исключение "Недостаточно памяти".

Ответы [ 2 ]

4 голосов
/ 09 января 2010

XCode -> Run -> Run With Performance Tool -> Activity Monitor.

Если устройство подключено, Activity Monitor запускается на iPhone / iTouch.

2 голосов
/ 09 января 2010

Я думаю, что вы пришли к этому не с того угла. Вы спрашиваете, как найти объем памяти без использования XCode. Я думаю, что вопрос, который вы должны задать: почему вы не можете использовать XCode? Предположительно это то, что вы использовали для разработки приложения в первую очередь?

Без XCode вы в значительной степени летаете вслепую. Вы говорите, что сократили размер своих текстур вдвое, но как вы узнали? Ваше приложение освобождает какую-либо постороннюю память, когда оно получает предупреждение о нехватке памяти? (applicationDidReceiveMemoryWarning:)

Во-первых, вы смотрели журналы сбоев при запуске приложения из XCode? Вы должны увидеть их в Организаторе в XCode.

Я не уверен, что есть единственное решение, чтобы остановить сбой вашего приложения с помощью XCode. Обычно, когда мой iPhone не позволяет отладку, я просто перезагружаю xCode и мою трубку, и она снова начинает работать. Перезапуск XCode иногда помогает. Я также попытался бы переустановить XCode и iPhone SDK.

...