
OProfile is a performance profiling tool for Linux systems, capable of profiling all running code at low overhead. It consists of a daemon for collecting sample data, plus several post-profiling tools for turning data into information.
OProfile leverages the hardware performance counters of the CPU to enable profiling of a wide variety of interesting statistics, which can also be used for basic time-spent profiling. All code is profiled: hardware and software interrupt handlers, kernel modules, the kernel, shared libraries, and applications (the only exception being the OProfile interrupt handler itself). Note that different architectures can use different hardware mechanisms to collect data.
OProfile is currently in alpha status; however it has proven stable over a large number of differing configurations. As always, there is no warranty.