Я использую инструмент ObjectAlloc от Instument, чтобы понять, какую память делает мое приложение (iPhone), когда и где оно это делает.
Мне бы очень хотелось получить базовое объяснение этой статистики:
- Живые байты
- # Жить
- # Транзиторий
- Всего байтов
Когда я пытаюсь вычислить, сколько памяти использует мое приложение, мне нужно посмотреть в байтах в реальном времени или в общих байтах? Это включает утечку памяти? Что такое переходные объекты?
Благодарность
Ответы:
ObjectAlloc
отслеживает все выделение и освобождение памяти за время работы вашей программы.Living bytes, or Net bytes
Сколько памяти приложение использует в то время вы выбираете на временной шкале. Это будет включать утечку памяти, поскольку утечка памяти никогда не освобождается.#Living
- сколько выделений определенного размера / типа объекта произошло (и все еще выделено). Это очень полезно при поиске утечек.Например, если вы многократно выполняете действие (например, выходите из контроллера модального представления) и видите, что
#Living
объект растет на одну и ту же величину каждый раз, то вы, вероятно, пропускаете эти объекты. Затем вы можете подтвердить, детализировав и просмотрев точную строку кода, которая выделяет объекты, и даже увидеть временной индекс, каждый из которых был создан.Overall bytes
включает память, которая была освобождена. Это число полезно отслеживать в целях оптимизации производительности, но не в том случае, если вы просто пытаетесь увидеть свой текущий объем памяти или искать утечки.источник
Объяснение статистики из документации Apple. Ссылка на документ
источник