Нет, график не должен выглядеть так. Отчисления обычно должны падать вниз (за исключением кешей, и даже те, которые должны быть сброшены, когда они очищаются от давления памяти).
Не стоит беспокоиться о распределении, тем не менее, пока вы не устраните утечку (утечки). Это может сделать это. Устраните утечку и повторите описанное выше упражнение и проверьте, не являются ли распределения плоскими. Если нет, то могут возникнуть другие проблемы. Но фиксация утечки могла полностью исправить ситуацию.
Кроме того, если вы еще не сделали, запустите инструмент через статический анализатор («Анализ» в меню Xcode «продукта» или нажмите сдвиг + команды + B). Особенно в коде MRC, который идентифицирует многие проблемы управления памятью. Это как волшебство. Перед тем, как продолжить, убедитесь, что у вас есть чистый счет.
Затем используйте инструмент Leaks
, чтобы точно определить, что происходит. Затем вы можете диагностировать, почему этот конкретный объект протекает. Исправьте эту утечку перед продолжением. См. Раздел Finding Leaks руководства пользователя .
После того, как вы все это сделали, вы можете повторить процесс исходного вопроса и посмотреть, продолжают ли распределения расти (например, могут быть вызваны циклом сохранения). Если у вас по-прежнему возникают проблемы после устранения утечек, как указано выше, в инструментах для определения типа добавочных распределений есть методы, которые затем можно использовать для отслеживания любых дальнейших проблем, если таковые имеются.
Например:
Run Allocations
инструмент, вариант -Щелкните и перетащить в инструмент распределения, а затем вы можете посмотреть на дереве вызовов, и он покажет вам, что отнимает много памяти. См. Пример this answer.
Запустите инструмент Allocations
. Пусть приложение опустится до точки покоя. Нажмите кнопку «Отметить кучу». Сделайте кучу вещей. Вернитесь к точке, где вы думаете, что материал должен был быть выпущен. Нажмите «Отметьте кучу» еще раз. Теперь посмотрим на этот снимок кучи и посмотрим на объекты, которые были выделены, но не выпущены между двумя моментальными снимками, и снова вы сможете диагностировать, что происходит.
Но все это спорный вопрос, пока вы не исправить утечку и инструмент Leaks
будет точно указать просочилась объект более эффективно, чем все остальное. Исправьте это сначала, а затем посмотрите, где вы стоите.
Для получения дополнительной информации, вы можете найти некоторые из обсуждений в WWDC 2012 iOS App Performance: Memory видео полезными (особенно в демонстрационных разделах).