1. Background
Over the last twenty years, software profilers have become commonplace on the programmer's workbench. These tools help focus optimization efforts on selecting the right algorithms and tuning time-critical code, often resulting in large overall performance gains. Profiling software can also help reveal performance problems that may lie far from where programmer's intuition expects them to be, saving development time that would be wasted chasing down false bottlenecks.