Распределение памяти SpringBoard (iPhone / iPad) - PullRequest
0 голосов
/ 24 августа 2010

У меня разрабатывается приложение, которое использует большой объем памяти для изображений и текстур OpenGL.

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

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

Я не могу найти много в документах Apple о SpringBoard, но это меня бесит.

Какие-нибудь идеи или указания по выяснению причин, по которым SpringBoard так агрессивны?

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Ваше приложение не должно аварийно завершать работу в таких ситуациях - оно должно корректно завершать работу, когда ОС сообщает ему о выходе.Apple не будет особо документировать Springboard, потому что не так много они могут рассказать вам о том, что должно повлиять на то, что вы делаете как программист, сводящееся к тому, чтобы «использовать как можно меньше памяти; не пропускать память; выходить так быстро, каквозможно, когда говорят выйти ".

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

0 голосов
/ 25 августа 2010

Ответ состоял в том, что MKAnnotationViews, несмотря на то, что они были автоматически выпущены, объединялись в памяти в SpringBoard, в отличие от моего собственного приложения, и не проявляли себя очень четко в инструментах.

Это довольноОбман со стороны Apple, особенно в том, что они позволяют вам автоматически выпускать и никогда не использовать объект, но он никогда не будет выпущен ... поэтому это технически не утечка в глазах инструментов и статического анализа, но все же легкопривести к сбоям памяти.

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