Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

atrace
Системная трассировка

Тип файла: команда
  Eng  

usage: atrace [options] [categories...]

Параметры:

  • -a appname включает трассировку на уровне приложения
    для списка командных строк, разделенных запятыми;
    * является подстановочным знаком, соответствующим
    любому процессу

  • -b N использовать размер буфера трассировки N КБ

  • -c трассировка в кольцевом буфере

  • -f имя файла использовать категории, записанные в файле,
    как разделенные пробелом значения в строке

  • -k fname,... trace перечисленные функции ядра

  • -n игнорируют сигналы

  • -s N засыпают в течение N секунд перед трассировкой
    [по умолчанию 0]

  • -t N трассируют в течение N секунд [по умолчанию 5]

  • -z сжимают дамп трассировки

  • --async_start запускают циклическую трассировку
    и возвращаются немедленно

  • --async_dump выгружают текущее содержимое буфера
    циклической трассировки

  • --async_stop остановить трассировку и сбросить текущее
    содержимое циклического буфера трассировки

  • --stream поток трассировки на стандартный вывод
    при входе в буфер трассировки


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

  • --list_categories - список доступных категорий трассировки

  • -o filename записать трассировку в указанный файл вместо stdout

       

    Комментарии
    https://developer.android.com/topic/performance/tracing

    Запись активности устройства в течение короткого периода времени называется системной трассировкой.
    Трассировка системы создает файл трассировки, который можно использовать для создания системного отчета.
    Этот отчет поможет вам определить, как лучше всего улучшить производительность вашего приложения или игры.

    Полное введение в трассировку и профилирование см. на странице Tracing документации Perfetto.

    Платформа Android предоставляет несколько различных вариантов захвата трассировок:

    Профилировщик процессора и памяти Android Studio
    Утилита трассировки системы
    Инструмент командной строки Perfetto (Android 10 и выше)
    Инструмент командной строки Systrace

    Профилировщик ЦП Android Studio проверяет использование ЦП вашего приложения и активность
    потоков в режиме реального времени, пока вы взаимодействуете с приложением.
    Вы также можете просмотреть подробности в записанных трассировках методов,
    трассировках функций и трассировках системы.

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

    Утилита трассировки системы — это инструмент Android, который сохраняет активность
    устройства в файле трассировки. На устройстве под управлением Android 10 (уровень API 29)
    или более поздней версии файлы трассировки сохраняются в формате Perfetto,
    как показано далее в этом документе.

    На устройстве с более ранней версией Android файлы трассировки сохраняются в формате Systrace.

    Perfetto — это общеплатформенный инструмент трассировки, представленный в Android 10.
    Это сложный проект трассировки с открытым исходным кодом для Android, Linux и Chrome.
    Он предлагает расширенный набор источников данных по сравнению с Systrace и
    позволяет записывать произвольно длинные трассировки в двоичный поток буфера протокола.
    Вы можете открыть эти трассировки в пользовательском интерфейсе Perfetto .

    Systrace — это устаревший инструмент командной строки, предоставляемый платформой,
    который записывает активность устройства в течение короткого периода времени в сжатый текстовый файл.
    Инструмент создает отчет, который объединяет данные из ядра Android,
    такие как планировщик ЦП, активность диска и потоки приложений.
    Systrace работает на всех версиях платформы, начиная с Android 4.3 (уровень API 18) и выше,
    но Perfetto рекомендуется для устройств под управлением Android 10 и выше.

    Снимок экрана с изображением трассировки Perfetto
    Рисунок 1. Пример представления трассировки Perfetto, который показывает
    около 20 секунд взаимодействия с приложением.

    Скриншот отчета Systrace
    Рис. 2. Пример HTML-отчета Systrace, показывающий 5 секунд взаимодействия с приложением.

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

    Perfetto и Systrace совместимы:

    Откройте файлы Perfetto и файлы Systrace в пользовательском интерфейсе Perfetto.
    Открывайте файлы Systrace с помощью устаревшего средства просмотра Systrace
    в пользовательском интерфейсе Perfetto (используйте ссылку
    «Открыть с помощью устаревшего пользовательского интерфейса »).
    Преобразуйте трассировку Perfetto в устаревший текстовый формат Systrace
    с помощью инструмента traceconv .

    Примечание. Systrace и Perfetto не собирают подробную информацию о выполнении кода
    в процессе вашего приложения.

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

    Руководства по трассировке системы

    https://developer.android.com/studio/profile/cpu-profiler Проверка активности ЦП с помощью CPU Profiler
    Показывает, как профилировать загрузку ЦП приложением и активность потоков в Android Студия.

    https://developer.android.com/topic/performance/tracing/on-device Системное приложение System Tracing
    Объясняет, как получить системную трассировку непосредственно на любом
    работающем устройстве Android 9 (уровень API 28) или выше.

    https://developer.android.com/topic/performance/tracing/command-line Справочник по командной строке Systrace
    Определяет различные параметры и флаги, которые вы можете передать в
    интерфейс командной строки для Systrace.

    https://developer.android.com/studio/command-line/perfettoЗапуск Perfetto с помощью ADB
    Описывает, как запустить инструмент командной строки perfetto для захвата трассировки.

    https://perfetto.dev/#/running.md" Запуск Perfetto
    Внешняя документация, описывающая, как собрать и запустить perfetto
    инструмент командной строки для захвата трассировки.

    https://perfetto.dev/#/running.md" Пользовательский интерфейс Perfetto
    Веб-средство просмотра трасс Perfetto открывает трассировки Perfetto и отображает полный отчет.
    Вы также можете открывать трассировки Systrace в этом средстве просмотра, используя
    устаревший вариант пользовательского интерфейса.

    https://developer.android.com/topic/performance/tracing/navigate-report Навигация по отчету Systrace
    Перечисляет элементы типичного отчета, представляет сочетания клавиш для
    навигации по отчету и описывает, как идентифицировать типы
    проблемы с производительностью.

    https://developer.android.com/topic/performance/tracing/custom-events Определение пользовательских событий
    Описывает, как можно применять настраиваемые метки к определенным разделам кода,
    что упрощает анализ первопричин в Systrace или Perfetto.

    ------------------------
    https://perfetto.dev/docs/data-sources/atrace

    ATrace: Android system and app trace events

    На Android собственные и управляемые приложения могут вставлять в трассировку пользовательские срезы и счетчики точек трассировки.
    Это возможно благодаря следующему:

    Приложения Java/Kotlin (SDK): android.os.Trace.
    См. https://developer.android.com/reference/android/os/Trace.

    Собственные процессы (NDK): ATrace_beginSection() / ATrace_setCounter(), определенные в <trace.h>. См. https://developer.android.com/ndk/reference/group/tracing.

    Внутренние процессы Android: ATRACE_BEGIN()/ATRACE_INT() определены в libcutils/trace.h.

    Этот API доступен начиная с Android 4.3 (уровень API 18) и предшествует Perfetto. Все эти аннотации, которые внутренне маршрутизируются через внутренний API libcutils, поддерживаются и будут поддерживаться Perfetto.

    Существует два типа событий atrace: системные события и события приложений.

    Системные события: генерируются только внутренними компонентами Android с использованием libcutils. Эти события сгруппированы по категориям (также известным как теги), например. «am» (Диспетчер Активности), «pm» (Менеджер Пакетов). Полный список категорий см. на странице «Запись новой трассировки» пользовательского интерфейса Perfetto.

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

    События приложения: имеют ту же семантику, что и системные события. Однако, в отличие от системных событий, они не имеют возможности фильтрации тегов (все события приложений имеют один и тот же тег ATRACE_TAG_APP), но могут быть включены для каждого приложения отдельно.

    См. раздел TraceConfig ниже для получения инструкций о том, как включить как системные события, так и события приложений.

    Инструментальные накладные расходы

    Инструментарий ATrace стоит немало: 1–10 долларов США за событие. Это связано с тем, что каждое событие включает в себя строковое преобразование, вызов JNI, если он исходит из управляемой среды выполнения, и обращение в пространство пользователя <-> в пространство ядра для записи маркера в /sys/kernel/debug/tracing/trace_marker (что является самой дорогой частью).

    Наша команда ищет путь миграции для Android в свете недавно представленного Tracing SDK. На данный момент рекомендуется продолжать использовать существующий API ATrace на Android.

    интерфейс
    На уровне пользовательского интерфейса эти функции создают срезы и счетчики в рамках группы отслеживания процесса следующим образом:



    SQL
    На уровне SQL события ATrace доступны в стандартных таблицах срезов и счетчиков вместе с другими счетчиками и срезами, поступающими из других источников данных.