Распределение объектов и память - PullRequest
0 голосов
/ 11 мая 2010

У меня есть приложение, которое принимает "живые байты" до 3 МБ. Приложение, отображающее предупреждения памяти, и оно будет постоянно падать. Когда я использую инструмент выделения объектов, я могу увидеть живой bytes.im, используя imageWithContentsOfFile во многих местах. я могу видеть, что объект NSConcreteData занимает больше памяти. Каков резон для этого? Могу ли я узнать, сколько памяти разрешено приложению.

1 Ответ

1 голос
/ 11 мая 2010

Вы не можете точно знать, сколько памяти вам разрешено использовать, но в целом у вас все в порядке до 20 Мб на устройствах iPhone / iPod. Однако ваше приложение может быть убито не только за использование слишком большого количества памяти, но и за то, что не удалось уменьшить использование памяти при выдаче предупреждений. Поэтому, даже если вы не используете столько памяти, если система обнаружит, что вы не освобождаете память при получении предупреждений о памяти, ваше приложение может быть закрыто. По крайней мере, это мой опыт , может быть, у других есть более подробные знания о том, что происходит.

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

РЕДАКТИРОВАТЬ: imageWithContentsOfFile: не кэширует изображения. Метод imageNames: кэширует изображения, и это единственный метод создания изображений, который делает.

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