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


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

simpleperf
Инструмент профилирования для Android

Тип файла: команда
  Рус  
usage:  simpleperf [common options] subcommand [args_for_subcommand]

common options:

  • -h/--help Print this help information.

  • --log <severity> Set the minimum severity of logging. Possible severities include verbose, debug, warning, info, error, fatal. Default is info.

  • --log-to-android-buffer Write log to android log buffer instead of stderr.

  • --version Print version of simpleperf. subcommands: api-collect collect recording data generated by app api api-prepare prepare recording via app api debug-unwind debug/test offline unwinding dump dump perf record file help print help information for simpleperf inject parse etm instruction tracing data kmem collect kernel memory allocation information list list available event types merge merge multiple perf.data into one monitor monitor events and print their textual representations to stdout record record sampling info in perf.data report report sampling information in perf.data report-sample report raw sample information in perf.data stat gather performance counter information trace-sched trace system-wide process runtime events
  •    

    Комментарии
    https://github.com/blmousee/simpleperf

    Как работает Simpleperf

    Современные процессоры имеют аппаратный компонент, называемый блоком мониторинга производительности (PMU).
    PMU имеет несколько аппаратных счетчиков, подсчитывающих такие события, как количество выполненных циклов процессора, количество выполненных инструкций или количество промахов кэша.

    Ядро Linux оборачивает эти аппаратные счетчики в события аппаратной производительности. Кроме того, ядро Linux также предоставляет аппаратно-независимые программные события и события точек трассировки. Ядро Linux предоставляет все это пользовательскому пространству через системный вызов perf_event_open, который использует simpleperf.

    Simpleperf имеет три основные функции: статистика, запись и отчет.

    Команда stat дает сводку о том, сколько событий произошло в профилируемых процессах за определенный период времени.
    Учитывая пользовательские параметры, simpleperf включает профилирование, выполняя системный вызов ядра Linux.
    Ядро Linux включает счетчики при планировании профилируемых процессов.
    После профилирования simpleperf считывает счетчики из ядра Linux и сообщает сводку счетчиков.

    Команда record записывает выборки профилируемого процесса за период времени.
    Учитывая пользовательские параметры, simpleperf включает профилирование, выполняя системный вызов ядра Linux.
    Simpleperf создает сопоставленные буферы между simpleperf и ядром Linux.
    Ядро Linux включает счетчики при планировании профилируемых процессов.
    Каждый раз, когда происходит заданное количество событий, ядро linux выгружает образец в отображаемый буфер.
    Simpleperf считывает выборки из отображаемых буферов и генерирует perf.data.
    Команда report считывает файл «perf.data» и все общие библиотеки, используемые профилируемыми процессами, и выводит отчет, показывающий, на что было потрачено время.


    Simpleperf list используется для перечисления всех событий, доступных на устройстве. Разные устройства могут поддерживать разные события из-за различий в оборудовании и ядре.


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


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

    Simpleperf report используется для создания отчета на основе данных perf.data, сгенерированных командой записи simpleperf. Команда Report группирует записи в разные записи выборки, сортирует записи выборки в зависимости от того, сколько событий содержит каждая запись выборки, и распечатывает каждую запись выборки. Передавая параметры, мы можем выбрать, где найти perf.data и исполняемые двоичные файлы, используемые отслеживаемой программой, отфильтровать неинтересные записи и решить, как группировать записи.

    Ниже приведен пример. Записи сгруппированы в 4 выборочные записи, каждая запись представляет собой строку. Есть несколько столбцов, каждый столбец показывает часть информации, относящуюся к выборочной записи. Первый столбец — «Накладные расходы», в котором показан процент событий внутри текущей выборочной записи от общего числа событий. Поскольку событие производительности — это циклы ЦП, накладные расходы можно рассматривать как процент времени ЦП, используемого в каждой функции.