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


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

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

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

usage: simpleperf [common options] subcommand [args_for_subcommand]

Параметры:

  • -h / --help Распечатайть эту справочную информацию.

  • --log <severity> Установите минимальный уровень ведения журнала.
    Возможные уровни:
    include
    verbose
    debug
    warning
    info
    error
    fatal
    По умолчанию - info.

  • --log-to-android-buffer Запись журнала в буфер
    журнала Android вместо stderr.

  • --version Вывести версию simpleperf

    Подкоманды:

    api-collect собирать данные записи, сгенерированные API приложения


    api-prepare подготовить запись через API приложения


    debug-unwind отладка/тестирование в автономном режиме


    dump дамп производительности


    help напечатать справочную информацию для simpleperf


    inject анализировать данные трассировки инструкции etm


    kmem собирать информацию о выделении памяти ядра


    list список доступных типов событий


    merge объединить несколько perf.data в один


    monitor отслеживать события и выводить их текстовые
    представления на стандартный вывод


    record записать информацию о выборке в perf.data


    report сообщить информацию о выборке в perf.data


    report-sample сообщать необработанную информацию о
    проверке в perf.data


    stat собирать информацию счетчика производительности


    trace-sched отслеживать общесистемные события времени
    выполнения процесса

    Пример:
    simpleper flist

    List of hw-cache events:
    # More cache events are available in `simpleperf list raw`.

    List of coresight etm events:
    List of hardware events:
    List of pmu events:
    List of raw events provided by cpu pmu:
    # Please refer to "PMU common architectural and microarchitectural event numbers"
    # and "ARM recommendations for IMPLEMENTATION DEFINED event numbers" listed in
    # ARMv8 manual for details.

    List of software events:
    alignment-faults
    context-switches
    cpu-clock
    cpu-migrations
    emulation-faults
    major-faults
    minor-faults
    page-faults
    task-clock

    List of tracepoint 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 выборочные записи, каждая запись представляет собой строку. Есть несколько столбцов, каждый столбец показывает часть информации, относящуюся к выборочной записи. Первый столбец — «Накладные расходы», в котором показан процент событий внутри текущей выборочной записи от общего числа событий. Поскольку событие производительности — это циклы ЦП, накладные расходы можно рассматривать как процент времени ЦП, используемого в каждой функции.