Это полностью зависит от приложения и от того, что вы пытаетесь сделать. Вы пытаетесь оптимизировать все приложение или вы сосредоточены на конкретной проблемной области? Вы пытаетесь уменьшить использование памяти, уменьшить нагрузку на процессор и / или сделать приложение более отзывчивым?
Перед началом анализа производительности используйте статический анализатор для анализа кода. Часто возникают проблемы с управлением памятью, которые могут привести к утечкам, которые могут привести к сбою приложения на устройстве.
Как только все выявленные анализатором проблемы были устранены, лучше всего начать с выявления предполагаемых проблем с производительностью. То есть сфокусируйтесь на проблемах производительности, которые заметит пользователь. Затем проанализируйте их. Если вам это сойдет с рук, проведите анализ в приложении, работающем в симуляторе, так как время обработки данных сокращается.
Если проблема связана с раздуванием, используйте Object Alloc и Leaks, чтобы выяснить, почему.
Если это одно из замедленных или вялых действий, используйте инструменты ЦП, чтобы выяснить, куда идут циклы. Имейте в виду, однако, что вялое поведение может не быть из-за загрузки процессора, но может быть, потому что основной цикл событий блокируется чем-то, скорее всего, некорректными шаблонами параллелизма. В этом случае вы увидите все примеры в основном потоке в какой-то функции блокировки или ожидания.
Кроме того, вам нужно определить конкретные сценарии, чтобы получить конкретные ответы.