Почему UIWebView не освобождает всю свою память? - PullRequest
7 голосов
/ 29 декабря 2010

У меня есть графическое приложение для iPad с UIWebView. Используя симулятор (iOS 4.2.1), я вижу, что Real Mem значительно увеличивается во время просмотра. Чем больше я просматриваю, тем больше оперативной памяти он использует. Когда я закрываю UIWebView и отпускаю его, часть используемой памяти освобождается, но не все. Это раздражает. Ладно, может быть, это потому, что он не освобожден сразу. Хорошо. Но тогда я ожидал бы, что система выполнит некоторую очистку, когда появится предупреждение о памяти. Однако, если я просматриваю, затем закрываю UIWebView (и отпускаю его), а затем выдает предупреждение памяти в симуляторе, Real Mem не меняет ! WTF?

Так почему это? Почему UIWebView лучше не освобождает память обратно в систему? И почему он не отвечает на предупреждения памяти? Я что-то упустил?

1 Ответ

6 голосов
/ 29 декабря 2010

Добавление в качестве ответа, поскольку оно, похоже, помогло:

Activity Monitor бесполезен для целей отладки.Используйте инструмент Allocations.Обратите внимание, что симулятор может вести себя значительно иначе, чем приложение на устройстве.

Рад, что помог.Я часто нахожу, что включение «Только отслеживать оперативные распределения» весьма полезно для наблюдения за текущим рабочим набором моих приложений.Точное / мертвое отслеживание также полезно.

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

Утечки?Никогда не используйте это.Анализ кучи полностью заменяет его для меня.Ваш пробег может отличаться.

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