Инструменты XCode: пиковая RAM приложений iPhone, работающих в Симуляторе?
Является ли Activity Monitor (он же Memory Monitor) единственным инструментом в Xcode Instruments, который может измерять общее использование оперативной памяти приложения iPhone, запущенного в Simulator? Только та строка, показывающая мгновенное проводное ОЗУ?
И насколько это точно по сравнению с аппаратным обеспечением iPhone, особенно с учетом ввода-вывода OSX для виртуальной машины?
Я вижу данные по 7–8 МБ для оперативной памяти только для скомпилированных и запущенных по умолчанию шаблонов проектов Xcode iPhone (кроме OpenGL). В то же время Распределение объектов показывает менее 1 МБ для всех объектов.
2 ответа
Нет, есть гораздо лучший способ сделать это.
Перейдите в меню "Выполнить" и выберите Run with Performance Tool
затем Object Allocations
,
Это запустит инструменты и покажет использование оперативной памяти. Это также полезно для обнаружения утечек памяти, если вы выбираете Leaks
вместо Object Allocations
,
Я бы согласился, поскольку Simulator - это просто "симулятор API", поведение, которое вы видите, будет, по крайней мере, несколько зависеть от того, как OS X управляет памятью. И ограничения, очевидно, разные, например, вы можете превысить 128 МБ ОЗУ или даже 256 МБ, что, очевидно, невозможно на любом текущем iPhone или iPod Touch (по крайней мере, на момент написания этой статьи...).
Я все еще нашел его полезным в OpenGL для того, чтобы удостовериться, что текстуры и другие элементы должным образом освобождены, но кроме этого, это всего лишь грубое руководство.
Однако, если вы хотите увидеть использование памяти на устройстве, есть достаточно простое решение. Просто выберите "Устройство" в XCode и перейдите в "Выполнить"> "Выполнить с помощью Performance Tool"> "Распределение объектов", затем сборка будет отправлена на устройство, а инструмент "Распределение объектов" появится рядом с XCode и покажет использование памяти устройства.