Инструменты ObjectAlloc: объяснение живых байтов и общих байтов - PullRequest
86 голосов
/ 28 января 2010

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

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

  • Live Bytes
  • Жизнь

  • Переходное

  • Всего байт

Когда я пытаюсь определить, сколько памяти использует мое приложение, я должен смотреть на живые байты или общие байты? Это включает утечку памяти? Что такое переходные объекты?

Спасибо

Ответы [ 2 ]

110 голосов
/ 28 января 2010

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

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

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

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

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

18 голосов
/ 30 ноября 2012

Объяснение статистики из документов Apple. Ссылка на документ

enter image description here

enter image description here

...