Everyone always says to profile your program before performing optimizations but no-one ever describes how to do so.
What are your practices for profiling C code?
Shark / Instruments (using dtrace) are the profilers available on a Mac. They're pretty good.