You can use valgrind with the following options
[b]valgrind --tool=callgrind ./(Your binary)[/b] It will generate a file called callgrind.out.x. You can then use kcachegrind tool to read this file. It will give you a graphical analysis of things with results like which lines cost how much.
You can use gprof.
make sure you compile code with -pg option > cc -o hello hello1.c hello2.c -g -pg There are other tools also, you can try like Valgrind, Intel VTune, Sun DTrace.