iPhone: постоянно увеличивается использование памяти в приложениях с использованием касаний - PullRequest
2 голосов
/ 17 июля 2009

Я наблюдал похожее поведение в примере приложения Apple и в игре, над которой я работаю. В игре поведение в конечном итоге приводит к сбою приложения из-за нехватки памяти. Пример приложения - Прикосновения.

В любой момент, когда отслеживаются касания, например, когда вы перемещаете один из объектов в Касаниях, и практически каждый раз, когда касание в моей игре отключается, использование памяти постоянно возрастает, пока Вы продолжаете перемещать касание. Как только последовательность касания завершается, использование памяти не уменьшается. Я получил Touches, которые начинаются с использования менее половины мегабайта, примерно до 4 МБ чистого распределения с несколькими минутами игры. Эта память никогда не освобождается.

Итак, мой вопрос: почему эта память никогда не освобождается? Я что-то принципиально неправильно понимаю? Это недостаток структуры? Я читал о проблемах с акселерометром и касаюсь утечек, но в этой игре акселерометр вообще не используется.

Ответы [ 3 ]

5 голосов
/ 17 июля 2009

Прошу прощения, если это кажется СЛИШКОМ элементарным, но ...

Нет шансов, что для NSZombiesEnabled установлено значение YES, не так ли?

Это предотвратит освобождение каких-либо объектов, и если вы действительно выделите новые, тогда ВСЕГДА приложение исчерпает память.

0 голосов
/ 06 августа 2009

Я в очень похожей ситуации. На самом деле, если я просто позволю мне запустить приложение, не трогая ничего (все, что он делает, это запускает NSTimer для обновления дисплея). И я замечаю, что память медленно, но неуклонно увеличивается в использовании.

Если есть утечки памяти, это не очевидно. Потому что я видел утечки памяти всплывающие всякий раз, когда он обнаруживает.

Значит ли это, что обнаружены утечки памяти?

0 голосов
/ 17 июля 2009

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

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