performance = less hardware required, happier users
generally, performance ~ execution time
measured by
there is a trade-off between efficiency of code (using efficiency ‘tricks’ etc.) and understandability of code
best development strategy: first, make the program simple, clear, robust, correct… then worry about efficiency… if it’s a problem at all
whilst theoretical complexity analysis gives some idea of performance, the best way is still to measure program execution
coarse-grained = overview of performance characteristics
fine-grained = detailed description of performance
gprof — a profilerthe gprof command displays execution profiles
compile program with the -pg flag
executing the program will cause a gmon.out file to be produced
gprof will read gmon.out and print profile on stdout