Приложение iPad не хватает памяти только после 5 МБ - PullRequest
1 голос
/ 18 сентября 2010

Я внимательно посмотрел на утечки, и у меня их нет (очень мало - все до 400 байт).Я прочитал несколько сообщений о том, что они не используют вызовы imageNamed, поскольку они кэшируют изображения.Я не использую ни одного из них.Я использую imageWithContentsOfFile.

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

Суть в том, что после прокручивания изображений и вкладок туда-сюда я получаю предупреждение уровня памяти 1, затем 2, затем происходит сбой.Все с использованием памяти обычно менее 5 МБ.

Есть ли какое-то странное кэширование?Это сводит меня с ума.Мое приложение для iPad непригодно для использования, так как оно падает в течение нескольких минут после его использования, так как оно постепенно накапливается в памяти без каких-либо утечек или большого использования памяти.

Это связано с моими «живыми байтами»быть 4.57MB, но мой "# Living" был 53825?Почему так много объектов до сих пор живет?Является ли количество живых объектов> 50 000 нормальным?Он продолжает увеличиваться (количество объектов), даже если «Живые байты» остаются прежними.

1 Ответ

1 голос
/ 18 сентября 2010

Как я описываю здесь , инструмент Allocations не показывает общее использование памяти вашим приложением.5 МБ, которые вы видите в этом инструменте, являются лишь верхушкой айсберга.

Вместо этого вам нужно использовать инструмент Memory Monitor, чтобы увидеть общий объем памяти вашего приложения.Я думаю, вы будете удивлены числами там.

Настройка использования памяти является сложной задачей, особенно с большими изображениями, с которыми вы имеете дело.То, что утечки не показывают ничего утечки, не означает, что вы не накапливаете память в какой-то области.Выполните повторяющиеся действия в своем приложении и используйте новые функциональные возможности Heap Shot в инструменте Allocations, чтобы увидеть, какие объекты, если они есть, накапливаются между каждым повторением действия.Я поймал много тонких накоплений памяти таким образом.

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