Prof and Gprof
Prof and
Gprof are GNU profilers which are freely available on many Unix platforms(Linux, IBM, Sun Solaris etc.). The code is linked or compiled with special -pg flags. The executable is then run, generating a file called gmon.out. Gprof is then run on the generated file, giving statistics about the run of the program.
OProfile
OProfile is a system-wide profiling tool for Linux using sampling. System-wide profiling is only permitted to the root user, as all actions on the system can be observed.
Valgrind
Valgrind is a system for debugging and profiling Linux programs. Valgrind's tool suite can automatically detect many memory management and threading bugs. It helps avoid hours of frustrating bug-hunting and thereby making programs more stable. It also enables detailed profiling of programs to help speed up the programs. There is no requirement for compiling or linking code with special flags.
Cachegrind
Cachegrind is a cache profiler.
Callgrind
Callgrind is an extension to Cachegrind. It provides all the information that Cachegrind does, plus extra information about call graphs.
Massif
Massif is a heap profiler. It performs detailed heap profiling by taking regular snapshots of a program's heap. It produces a graph showing heap usage over time, including information about which parts of the program are responsible for the most memory allocations.
Kcachegrind
KCachegrind is available separately as a visualization tool and gives a much better overview of the data that Callgrind collects. It can also be used to visualize Cachegrind's output.