Simpleperf

Android Studio включает графический интерфейс Simpleperf, описанный в разделе «Проверка активности ЦП с помощью CPU Profiler» . Большинство пользователей предпочтут использовать это вместо прямого использования Simpleperf.

Если вы предпочитаете использовать командную строку, Simpleperf — это универсальный инструмент профилирования ЦП с командной строкой, включенный в NDK для Mac, Linux и Windows.

Для получения полной документации начните с README Simpleperf.

Советы и рецепты Simpleperf

Если вы только начинаете работать с Simpleperf, вот несколько команд, которые могут оказаться вам особенно полезными. Дополнительные команды и параметры см. в разделе Справочник по командам и параметрам Simpleperf .

Найдите, какие общие библиотеки выполняются дольше всего

Вы можете запустить эту команду, чтобы увидеть, какие файлы .so занимают наибольший процент времени выполнения (в зависимости от количества циклов ЦП). Это хорошая первая команда, которую следует запустить при запуске сеанса анализа производительности.

$ simpleperf report --sort dso

Найдите, какие функции выполняются дольше всего

После того как вы определили, какая общая библиотека занимает больше всего времени выполнения, вы можете запустить эту команду, чтобы увидеть процент времени, затраченного на выполнение функций этого файла .so .

$ simpleperf report --dsos library.so --sort symbol

Найти процент времени, проведенного в темах

Время выполнения файла .so можно разделить на несколько потоков. Вы можете запустить эту команду, чтобы увидеть процент времени, потраченного в каждом потоке.

$ simpleperf report --sort tid,comm

Найдите процент времени, проведенного в объектных модулях

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

$ simpleperf report --tids threadID --sort dso

Посмотрите, как связаны вызовы функций

Граф вызовов обеспечивает визуальное представление трассировки стека, которую Simpleperf записывает во время сеанса профилирования.

Вы можете использовать команду report -g , чтобы распечатать график вызовов и увидеть, какие функции вызываются другими функциями. Это полезно, чтобы определить, работает ли функция медленно сама по себе или это потому, что одна или несколько функций, которые она вызывает, работают медленно.

$ simpleperf report -g

Вы также можете использовать скрипт Python report.py -g для запуска интерактивного инструмента, отображающего функции. Вы можете нажать на каждую функцию, чтобы увидеть, сколько времени тратится на ее дочерние элементы.

Профилирование приложений, созданных с помощью Unity

Если вы профилируете приложение, созданное с помощью Unity, обязательно создайте приложение с символами отладки, выполнив следующие действия:

  1. Откройте свой проект Android в редакторе Unity.
  2. В окне «Настройки сборки» для платформы Android убедитесь, что установлен флажок «Сборка для разработки» .
  3. Нажмите «Настройки проигрывателя» и установите для свойства «Уровень зачистки» значение «Отключено» .