Я использую инструменты с инструментом распределения.Я тестирую только фиксированное взаимодействие с моим приложением.
У меня есть контроллер навигации, который проходит 4 этапа.Первые два этапа - это стандартные контроллеры табличного представления, а последние два - настраиваемые контроллеры с динамически загружаемыми изображениями.
Поэтому я запускаю свое приложение на инструментах (через Запуск с Performance Tool -> Allocations) и выполняю следующие взаимодействия:
1. App Loads
2. I wait a bit until allocations graph stabilizes
3. I tap/push into my navigation controller until the deepest level.
4. I wait for the images to load and for the allocations graph to stabilize.
5. I tap back out of the navigation controller until I'm back to the root level.
6. I wait for the allocations graph to stabilize.
7. GOTO 3.
Теперь я заметил, что между каждой итерацией от 3 до 7 график распределения показывает немного более высокое значение.Таким образом, общие ассигнования увеличиваются, хотя я делаю одно и то же, и все вызовы освобождения контроллера представления вызываются.
Так что временная шкала выглядит примерно так:
1. Start: 1mb
2. Push controllers/Load images: 4mb
3. Pop controllers: 1.1mb
4. Push controllers/Load images: 4.1mb
5. Pop controllers: 1.2mb
6. ... etc ... (always increasing slightly)
Так что мойвопрос это означает, что у меня есть утечка или это нормально?Кроме того, что на самом деле представляют данные графика распределения?И почему значение увеличивается, хотя я возвращаюсь в исходное состояние?Я обеспокоен тем, что, если мое приложение будет работать достаточно долго, оно будет занимать слишком много памяти, даже если все, что пользователь делает, это нажимает и выталкивает контроллеры представления.
Любые мысли будут полезны.