Разработка iPhone - ограничение памяти для приложения iphone - PullRequest
5 голосов
/ 19 января 2009

Может ли кто-нибудь указать правильное направление здесь. Я хочу отвечать, когда мое приложение получает предупреждение о памяти (я хочу знать, как реагировать на это уведомление). Плюс, сколько памяти я могу подключить к своему приложению?

Любые статьи или ссылки на книги будут великолепны. Спасибо.

Ответы [ 2 ]

7 голосов
/ 19 января 2009

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

Например, если ваше приложение обрабатывает некоторые числа и сохраняет результат в большом массиве, если вы не используете этот массив активно, вы должны его освободить. Затем восстановите его, когда вам это понадобится снова.

Немного больше информации здесь: Наблюдение за предупреждениями о недостатке памяти

4 голосов
/ 19 января 2009

Я неофициально слышал, что предупреждения выдаются, когда ваше приложение достигает 22 МБ. (Любая выделенная память включена - iPhone хранит все в физической памяти и не переносит страницы в любое другое хранилище.) Учитывая, что в телефоне всего 128 МБ общей памяти, это кажется правдоподобным.

Это ограничение не включает объем памяти, используемой общими системными библиотеками, такими как время выполнения Objective C. И хотя я не совсем уверен в этом, я не думаю, что использование памяти WebKit включено для компонента UIWebView, так как я считаю, что WebKit всегда загружен (но, опять же, не уверен на 100%).

Лучшее, что можно сделать, когда вы достигнете этого предела, - это освободить все, что вы можете легко восстановить или перечитать из входных файлов, таких как представления, изображения и кэшированные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...