|Original author(s)||John Levon|
|Stable release||0.9.9 / July 29, 2013|
OProfile is a system-wide statistical profiling tool for Linux. It was written by John Levon in 2001 for Linux kernel version 2.4 after his M.Sc. project, and consists of a kernel module, a user-space daemon and several user-space tools.
The most portable mode of oprofile uses a system timer to generate sampling interrupts (events). A less portable mode allows hardware performance counters to be used for sampling events generationed on several processor architectures. In Linux 2.2/2.4 only 32-bit x86 and IA64 are supported; in Linux 2.6 there is wider support: x86 (32 and 64 bit), DEC Alpha, MIPS, ARM, sparc64, ppc64, AVR32.
Call graphs are supported only on x86 and ARM.
- opcontrol is used to start and stop the daemon, which collects profiling data. This data is periodically saved to the /var/lib/oprofile/samples directory.
- opreport shows basic profiling data. 'opannotate' can produce annotated sources or assembly.
- opgprof converts from oprofile data into gprof-compatible format.
opcontrol ---start ( If there are any issues in starting like --vm-linux just follow the instructions) run <example> opcontrol --dump opreport -l <example> > <outputfile> opcontrol --stop (stops collecting the data) opcontrol --shutdown (Stops the demon) opcontrol --reset (clears the profile data which was stored in the sample file given)
- Interview: John Levon, 11 Nov 2001 // KernelTrap: "John Levon, the author of OProfile"
- A. Zanella, R. Arnold. Evaluate performance for Linux on POWER. Analyze performance using Linux tools, 12 Jun 2012 // IBM DeveloperWorks Technical library
- Official website
- W. Cohen, Tuning programs with OProfile // Wide Open Magazine, 2004, pages 53–62
- Prasanna Panchamukhi, Smashing performance with OProfile. Identifying performance bottlenecks in real-world systems // IBM DeveloperWorks, Technical Library, 16 Oct 2003
- Justin Thiel, An Overview of Software Performance Analysis Tools and Techniques: From GProf to DTrace, (2006) "2.2.2 Overview of Oprofile"