Проблема нехватки памяти iOS - PullRequest
0 голосов
/ 12 октября 2018

В моем приложении для iOS я запускаю инструмент инструментов, чтобы увидеть выделенную память.В приложении я называю CoreData и использую его для создания опроса с использованием ResearchKit от Apple.Каждый раз, когда я запускаю новый, я вижу увеличение количества «постоянных байтов».Когда приложение запускается, каждый раз, когда оно запускается много раз, приложение закрывается.

Я могу видеть, используя Crashylitics Fabric, что произошел сеанс Out of Memory.

Here you can see the jumps and the allocations remain Каков наилучший способ найти и исправить память, которая кажетсябыть сохранен?

1 Ответ

0 голосов
/ 15 октября 2018

Ваш скриншот не показывает утечек памяти, поэтому вам следует начать с использования инструмента Allocations, график которого приведен на вашем скриншоте.

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

Чтобы найти место в вашем коде, которое вызывает увеличение использования памяти, переключитесь на представление дерева вызовов, щелкнув панель перехода под графиком ивыбирая Call Trees.Инвертирование дерева вызовов и скрытие системных библиотек значительно упрощают поиск вашего кода в дереве вызовов.Нажмите кнопку «Дерево вызовов» в нижней части окна, чтобы инвертировать дерево вызовов и скрыть системные библиотеки.

enter image description here

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

Еще один инструмент, который вы можете использовать для анализа роста памяти, - это поколения инструмента Распределения.Запустите приложение, сделайте паузу и нажмите кнопку «Отметить поколение», чтобы создать поколение.Повторите, чтобы создать несколько поколений.Выберите «Поколения» из панели переходов, чтобы увидеть, насколько увеличивается объем памяти от поколения к поколению.

...