Утилита perf представляет собой мощный инструмент анализа производительности в операционных системах Linux. Она предоставляет разработчикам и системным администраторам средства для мониторинга и профилирования как пользовательского, так и ядрового кода, используя аппаратные счётчики производительности и механизмы трассировки. Perf был включён в ядро Linux начиная с версии 2.6.31, выпущенной в 2009 году, и с тех пор продолжает развиваться, предлагая всё более широкие возможности для анализа производительности.
Perf позволяет собирать и анализировать данные о различных событиях, таких как количество выполненных инструкций, циклы процессора, промахи кэш-памяти, переключения контекста и другие. Это достигается благодаря использованию аппаратных счётчиков производительности (PMU), а также поддержке динамических проб (kprobes и uprobes) и точек трассировки (tracepoints). Утилита предоставляет пользователю гибкие инструменты для анализа собранных данных, включая возможность визуализации результатов и построения профилей производительности.
- perf stat — измеряет общее количество событий производительности для программы или системы за определённый промежуток времени.
 - perf record — записывает данные о производительности в файл, который затем можно проанализировать с помощью команды 
perf report. - perf report — анализирует файл данных, созданный командой 
perf record, и предоставляет отчёт о производительности с возможностью визуализации стека вызовов. - perf top — отображает в реальном времени динамический профиль горячих функций, аналогичный утилите 
top. - perf trace — выполняет трассировку системных вызовов и событий ядра в реальном времени.
 - perf list — выводит список доступных событий производительности, поддерживаемых на конкретной системе.
 - perf annotate — аннотирует исходный код или ассемблерный код с учётом собранных данных о производительности.
 - perf sched — позволяет анализировать латентность планировщика и поведение планирования задач в ядре.