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


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

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

Тип файла: команда
  Рус  
usage:  atrace [options] [categories...]

options include:

  • -a appname enable app-level tracing for a comma separated list of cmdlines; * is a wildcard matching any process

  • -b N use a trace buffer size of N KB

  • -c trace into a circular buffer

  • -f filename use the categories written in a file as space-separated values in a line

  • -k fname,... trace the listed kernel functions

  • -n ignore signals

  • -s N sleep for N seconds before tracing [default 0]

  • -t N trace for N seconds [default 5]

  • -z compress the trace dump

  • --async_start start circular trace and return immediately

  • --async_dump dump the current contents of circular trace buffer

  • --async_stop stop tracing and dump the current contents of circular trace buffer

  • --stream stream trace to stdout as it enters the trace buffer Note: this can take significant CPU time, and is best used for measuring things that are not affected by CPU performance, like pagecache usage.

  • --list_categories list the available tracing categories

  • -o filename write the trace to the specified file instead of 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 доступны в стандартных таблицах срезов и счетчиков вместе с другими счетчиками и срезами, поступающими из других источников данных.