It runs transparently in the background without the need for instrumentation. There are several reasons. One is that threaded applications are painful to profile, although there is cprof for that purpose. It's easy and simple with OProfile.
Shared libraries can be a pain too, despite sprof.
Easy with OProfile. OProfile is generally very low overhead, often lost in the noise, whilst it profiles every aspect of a system. This makes it ideal for collecting realistic data from real-world production environments. There are source tarballs, CVS, bug tracker, and the mailing list. You can read the manual online here , or look at some sketchy results .