Инструменты ObjectAlloc: Объяснение байтов в реальном времени и общих байтов

Я использую инструмент Instument ObjectAlloc, пытаясь понять, что делает мое приложение (iPhone), когда и где он это делает.

Мне бы очень хотелось получить базовое объяснение этой статистики:

  • Live Bytes
  • Жизнь

  • Переходное

  • Общий байт

Когда я пытаюсь определить, сколько памяти использует мое приложение, могу ли я посмотреть Live Bytes или общие байты? Включает ли это утечку памяти? Что такое объекты Transitory?

Спасибо

Ответ 1

ObjectAlloc отслеживает распределение и освобождение памяти во время работы вашей программы.

Living bytes, or Net bytes - сколько памяти используется вашим приложением в момент выбора на временной шкале. Это будет включать утечку памяти, поскольку утечка памяти никогда не освобождается.

#Living - сколько выделений определенного размера/типа объекта произошло (и все еще выделено). Это очень полезно при поиске утечек.

Например, если вы повторно выполняете действие (например, выходите из контроллера модального представления), и вы видите, что #Living объекта растет на одну и ту же сумму каждый раз, то вы, вероятно, объекты. Затем вы можете подтвердить путем сверления и просмотра точной строки кода, которая выделяет объекты, и даже увидеть индекс времени, каждый из которых был создан.

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