<?php require('start_page.php3'); start_page("about.php3","About OProfile") ?>
OProfile is a system-wide profiler for Linux x86 systems, capable of profiling
all running code at low overhead. OProfile is released under the GNU GPL.
It consists of a kernel module and a daemon for collecting sample data, and 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: interrupt handlers, kernel modules, the kernel,
shared libraries, and applications (the only exception being the oprofile interrupt
OProfile is currently in alpha status; however it has proven stable over a large number
of differing configurations. As always, there is no warranty: OProfile may cause data
No special recompilations, wrapper libraries or the like are necessary. Even debug symbols
(<tt>-g</tt> option to <tt>gcc</tt>) are not necessary unless you want to produce annotated source.
No kernel patch is needed - just insert the module.
All code running on the system is profiled, enabling analysis of system performance.
<dt>Performance counter support</dt>
Enables collection of various low-level data, and assocation with particular sections
OProfile has a typical overhead of 3-8%, dependent on sampling frequency and workload.
Profile data can be produced on the function-level or instruction-level detail. Source trees
annotated with profile information can be created. A hit list of applications and functions
that take the most time across the whole system can be produced.
OProfile works across a range of x86 CPUs, including the Athlon/Duron range. Full support for
Pentium IV is not yet present. OProfile will work against almost any 2.2 and 2.4 kernel, and
works on both UP and SMP systems.
The early versions of OProfile were developed as part credit for an M.Sc. in Computer Science. The
basic principles of the design were inspired by Compaq's <a href="links.php3">DCPI</a> profiler.
<?php require('end_page.php3'); end_page("about.php3"); ?>