simpleperf Инструмент профилирования для Android Тип файла: команда usage: simpleperf [common options] subcommand [args_for_subcommand] common options: Комментарии Как работает 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 выборочные записи, каждая запись представляет собой строку. Есть несколько столбцов, каждый столбец показывает часть информации, относящуюся к выборочной записи. Первый столбец — «Накладные расходы», в котором показан процент событий внутри текущей выборочной записи от общего числа событий. Поскольку событие производительности — это циклы ЦП, накладные расходы можно рассматривать как процент времени ЦП, используемого в каждой функции. |