Проверка счетчиков с помощью perf stat
На этом этапе вы узнаете, как использовать команду perf stat
для измерения счетчиков производительности. Счетчики производительности - это специальные аппаратные регистры, которые подсчитывают определенные события, происходящие в ЦП, такие как количество выполненных инструкций, промахи кэша или ошибки предсказания переходов.
Инструмент perf
представляет собой мощную командную утилиту для анализа производительности в Linux. Команда perf stat
используется для запуска команды и сбора статистики счетчиков производительности при выполнении этой команды.
Начнем с запуска простой команды и наблюдения за ее счетчиками производительности. Мы будем использовать команду ls
, которая выводит содержимое каталога.
Если вы еще не открыли терминал, сделайте это. Вы можете найти значок Xfce Terminal слева на рабочем столе.
Теперь введите следующую команду и нажмите Enter:
perf stat ls
Вы должны увидеть вывод, похожий на следующий:
Performance counter stats for 'ls':
<placeholder> task-clock (msec) ## <placeholder> CPUs utilized
<placeholder> context-switches ## <placeholder> /sec
<placeholder> cpu-migrations ## <placeholder> /sec
<placeholder> page-faults ## <placeholder> /sec
<placeholder> cycles ## <placeholder> GHz
<placeholder> instructions ## <placeholder> insns per cycle
<placeholder> branches ## <placeholder> % of all instructions
<placeholder> branch-misses ## <placeholder> % of all branches
<placeholder> msec task-clock ## <placeholder> CPUs utilized
Точные числа и события могут отличаться в зависимости от системы и конкретного выполнения, но вы должны увидеть список событий производительности и их количество во время выполнения команды ls
.
Некоторые общие события, которые вы можете увидеть, включают:
task-clock
: Общее время, в течение которого задача выполнялась на ЦП.
cycles
: Количество тактов ЦП, затраченных на выполнение.
instructions
: Количество выполненных инструкций.
branch-misses
: Количество случаев, когда предсказание перехода было неверным.
Понимание этих счетчиков поможет вам выявить узкие места в производительности вашего кода или системы.
Вы также можете запустить perf stat
для более сложной команды или даже скрипта, чтобы проанализировать его производительность.
Например, давайте попробуем запустить perf stat
для простой команды sleep
:
perf stat sleep 1
Это измеряет счетчики производительности, в то время как система находится в режиме ожидания в течение 1 секунды. Вывод покажет счетчики для процесса sleep
.
Попробуйте запустить perf stat
для разных команд, чтобы увидеть, как меняются счетчики.
Нажмите Продолжить, чтобы перейти к следующему шагу.