perf!

This is the wiki page for the Linux `perf` command, also called perf_events. `perf` is powerful: it can instrument CPU performance counters, tracepoints, kprobes, and uprobes (dynamic tracing. It is capable of lightweight profiling. It is also included in the Linux kernel, under tools/perf, and is frequently updated and enhanced. `perf` began as a tool for using the performance counters subsystem in Linux, and has had various enhancements to add tracing capabilities. Performance counters are CPU hardware registers that count hardware events such as instructions executed, cache-misses suffered, or branches mispredicted. They form a basis for profiling applications to trace dynamic control flow and identify hotspots. `perf` provides rich generalized abstractions over hardware specific capabi

perf alternatives

  • strace

  • strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.

    tags: debugger os-kernel traces
  • DTrace

  • DTrace is a performance analysis and troubleshooting tool that is included by default with various operating systems, including Solaris, Mac OS X and FreeBSD. A Linux port is in development.

    tags: debugger developer-tools development os-kernel software-development
  • ltrace

  • ltrace intercepts and records dynamic library calls which are called by an executed process and the signals received by that process. It can also intercept and print the system calls executed by the program. Used for debugging.

    tags: debugger os-kernel system-utilities
  • ftrace

  • Ftrace is an internal tracer designed to help out developers anddesigners of systems to find what is going on inside the kernel.It can be used for debugging or analyzing latencies andperformance issues that take place outside of user-space.

    tags: development-tool os-kernel software-development training
  • ktap

  • ktap is a script-based dynamic tracing tool for Linux. It uses a scripting language and lets users trace the Linux kernel dynamically. ktap is designed to give operational insights with interoperability that allows users to tune, troubleshoot and extend the kernel and applications. It's similar to Systemtap and DTrace.

    tags: debugger developer-tools development os-kernel software-development
  • ktrace

  • The ktrace utility enables kernel trace logging for the specified processes. Kernel trace data is logged to the file ktrace.out. The kernel operations that are traced include system calls, namei translations, signal processing, and I/O.

    tags: debugger developer-tools os-kernel software-development tracing
  • SystemTap

  • SystemTap provides free software (GPL) infrastructure to simplify the gathering of information about the running Linux system. This assists diagnosis of a performance or functional problem. SystemTap eliminates the need for the developer to go through the tedious and disruptive instrument, recompile, install, and reboot sequence that may be otherwise required to collect data.

    tags: debugger developer-tools development os-kernel traces