perf
17 commands
17 shown
Записать CPU-циклы
Записать данные о производительности с графом вызовов
perf record -g ./my_app
Показать отчёт perf
Интерактивный просмотр записанных данных perf
perf report
Список доступных событий
Показать все поддерживаемые события perf на системе
perf list
Статистика команды
Показать аппаратные счётчики для команды
perf stat ls -la
Запись с конкретным событием
Записывать только события cache-miss
perf record -e cache-misses ./my_app
Интерактивный просмотр в реальном времени
Показать использование CPU по функциям в реальном времени
perf top
Аннотировать горячие функции
Показать аннотированный ассемблер для самых горячих функций
perf annotate
Сбор данных для Flamegraph
Собрать данные для генерации flamegraph
perf record -F 99 -ag -- sleep 30 && perf script > out.perf
Подсчёт системных вызовов
Подсчитать конкретные системные вызовы
perf stat -e syscalls:sys_enter_read ./my_app
Подключиться к запущенному процессу
Профилировать уже запущенный процесс 5 секунд
perf record -p 1234 sleep 5
Живой граф вызовов CPU
Живой top горячих функций с цепочками вызовов; dwarf разворачивает стек без frame pointer
perf top -g --call-graph dwarf
Системная запись профиля
Семплирует всю машину на 99Гц 30с, затем печатает отчёт; 99Гц уходит от синхронного алиасинга
perf record -F 99 -a -g -- sleep 30 && perf report --stdio
Конвейер flame graph
Превращает perf.data в интерактивный flame graph SVG (инструменты FlameGraph от Brendan Gregg)
perf script | stackcollapse-perf.pl | flamegraph.pl > flame.svg
Подробная статистика счётчиков
Три -d дают детали L1/LLC/TLB и простоев; показывает упор в память против упора в CPU
perf stat -d -d -d -- ./app
Анализ задержек планировщика
Записывает переключения контекста и показывает задержку пробуждения по задачам; ловит голодание в runqueue
perf sched record -- sleep 10 && perf sched latency --sort max
Трассировка syscall через perf
strace-подобная трассировка syscall со сводкой -s; меньше накладных, без остановки через ptrace
perf trace -s -p <pid>
Динамический пробник на функции
Добавляет kprobe с аргументом и записывает его; смотрит внутренности ядра без пересборки
perf probe --add 'tcp_sendmsg size' && perf record -e probe:tcp_sendmsg -a -- sleep 5
no commands match