This Linux profiler software can profile all running code on a system with low overhead.
OProfile is composed of a kernel driver and a daemon that gathers sample data. Additionally, it includes several post-profiling tools, which convert data into useful information. This innovative tool extracts hardware performance counters of the CPU to undertake profiling of numerous statistics that can also be used for basic time-spent profiling. Essentially, OProfile profiles all code across the system, including hardware and software interrupt handlers, kernel modules, the kernel, shared libraries, and applications.
Despite being in alpha status, OProfile has proven to be highly stable and has functioned seamlessly over a substantial range of configurations. This software is being used on machines that range from laptops to 16-way NUMA-Q boxes. However, OProfile does not come with a warranty.
OProfile's key features include being unobtrusive, enabling system-wide profiling, supporting performance counters, having call-graph support, and a low overhead. The tool does not require any special recompilations, wrapper libraries, or a kernel patch. The profiler has a typical overhead of 1-8%, which depends on the sampling frequency and workload. OProfile is also capable of providing gprof-style call-graph profiling data with an x86 or ARM 2.6 kernel.
Additionally, post-profile analysis conducted on OProfile can produce data on the function-level or instruction-level detail. Moreover, it can create annotated source trees with profile information, and a hit list of the applications and functions that take the most time across the system.
OProfile is supported across a wide range of CPUs, including the Intel range, AMD's Athlon and AMD64 processors, Alpha, ARM, and more. Moreover, OProfile works against almost any 2.2, 2.4, and 2.6 kernels and on both UP and SMP systems, from desktops to the NUMAQ boxes, which makes it an ideal option for software developers.
Version 0.9.5: N/A