Performance analysis tools for Linux .
SYNTAX perf [--version] [--help] COMMAND [ARGS]All perf subcommands need to run as root (sudo) # show programs that are using the most CPU: $ sudo perf top # Sample CPUs at 49% show top symbols: $ sudo perf top -F 49 # Start COMMAND and profile it: $ sudo perf record COMMAND # Profile PID until Ctrl-C is pressed: $ sudo perf record PID # Profile every process until Ctrl-C is pressed: $ sudo perf record -a # CPU counter statistics for COMMAND $ sudo perf stat COMMAND # Detailed CPU counter statistics for COMMAND $ sudo perf stat -ddd COMMAND # Various basic CPU statistics system wide: $ sudo perf stat -e cycles,instructions,cache-misses -a # Show perf.data in an ncurses browser: $ sudo perf report # Trace syscalls system wide: $ sudo perf trace # Trace syscalls for PID: $ sudo perf trace -p PID # Sample CPU functions for COMMAND at 99 Hzertz: $ sudo perf record -F 99 COMMAND # Sample CPU functions for PID until Ctrl-C is pressed: $ sudo perf record -p PID # Sample CPU functions for PID for 10 seconds: $ sudo perf record -p PID sleep 10 # Sample CPU stack traces for PID for 10 seconds: $ sudo perf record -p PID -g -- sleep 10 # Trace new processes until Ctrl-C is pressed: $ sudo perf record -e sched:sched_process_exec -a
perf can trace system calls faster than strace.
perf record saves to the perf.data file.
"When someone shows you who they are, believe them the first time ~ Maya Angelou
Related linux commands:
htop - Interactive process viewer.
strace - Trace system calls and signals.
Julia Evans Perf-Zine - Profiling and Tracing (pdf)
Equivalent Windows command: perfmon.